Untuk update metode simpan gambar lihat di appGambar 2.0
Sedangkan cara lainnya dengan menyimpan gambar dalam bentuk file di folder yang disediakan. Pemrogramannya akan lebih mudah, dan databse tidak ikut terbebani untuk menyimpan data gambar. Selain gambar, kedua cara ini bisa dipakai untuk data yang lain, misalkan attachment berupa dokumen word.
Untuk selanjutnya, yang dibahas adalah cara yang kedua. Sebuah implementasi penyimpanan data yang disertai gambar dengan cara pengkopian file aslinya, dengan menggunakan Java dan mysql. Sudah disediakan download project yang bisa dibuka di Netbeans. Sedangkan untuk aplikasi yang sudah jadi dalam bentuk exe dan jar, juga sudah disediakan. Pastikan untuk menyiapkan database mysql terlebih dahulu dengan mengimport sql script yang disediakan, dengan mengharuskan menggunakan username "root" dengan tanpa password untuk server mysql-nya, agar aplikasi ini bisa mengakses datanya.
Persiapan.
Pada contoh ini menggunakan database mysql. Disarankan untuk menggunakan paket instalasi server yang terintegrasi seperti halnya XAMPP. disana sudah ada mysql dengan phpmyadmin sebagai user interface nya.
Editor, sebenarnya lebih menyenangkan kalau menggunakan notepad2. Tapi, kalau mau memakai yang serba "wah" dan gratis, gunakan inipun dibuat dengan Netbeans 6.5 supaya lebih mudah untuk dipelajari ulang. Saya sendiri sedang mempelajari Netbeans paling baru, 6.7 ML, terutama bagian Netbeans Framework-nya yang keren.
Untuk driver koneksi, memakai mysql-connector-java-5.1.7, sudah ada dalam project, akan dipanggil sebagai lib tambahan apabila project ini dibuka kembali di Netbeans.
Manajemen data.
pertama kali ada pembuatan data baru, data kemudian akan disimpan di database mysql. Setelah penyimpanan data, kita bisa mengambil data kembali yang sudah disimpan dengan pencarian berdasarkan ID.
Manajemen Gambar.
Untuk gambar, saat pembuatan data baru, gambar akan ditampilkan setelah pemilihan file. Saat penyimpanan, gambar akan dikopikan ke folder images, kemudian diganti namanya sesuai dengan ID. Sedangkan pada saat penampilan hasil pencarian data, gambar akan ditampilkan kembali.
Untuk menampilkan gambar, dulunya sering memakai komponen JLabel dan dijadikan sebagai image icon. Tapi untuk yang ini memakai canvas dengan meng-override paint(), sehingga lebih bebas untuk penampilan gambar, termasuk bisa melakukan scale-autofit-aspect ratio apabila gambar yang dipilih lebih besar dari tempat yang disediakan.
Langkah pemuatan:
- Untuk mencoba menjalankan aplikasi ini terlebih dahulu harus membuat database. Membuat database di mysql dengan script:
CREATE DATABASE `data`;
USE `data`;
CREATE TABLE IF NOT EXISTS `data_pegawai` (
`id` varchar(10) NOT NULL,
`nama` varchar(50) NOT NULL,
`jenis_kelamin` char(1) NOT NULL,
`alamat` varchar(150) NOT NULL,
PRIMARY KEY (`id`)
);
- Untuk komponen cGambar dengan jenis Canvas, di Editor Netbeans, ubah bagian code, custom creation code, dengan new Painter(); , sehingga pada bagian kode akan menghasilkan baris berikut : cGambar = new Painter(); , dibagian deklarasi pembuatan variabel.
- Bagian penting dari program dengan penjelasannya:
//Membuat File chooser dengan propertiesnya, menentukan filter gambar, setelah itu dipanggil untuk mengambil gambar
private void bBukaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bBukaActionPerformed
javax.swing.JFileChooser jfc = new JFileChooser();
FileFilter jpgFilter, gifFilter, bothFilter;
jpgFilter = new FileNameExtensionFilter("Gambar JPEG", "jpg");
gifFilter = new FileNameExtensionFilter("Gambar GIF", "gif");
bothFilter = new FileNameExtensionFilter("Gambar JPEG dan GIF", "jpg", "gif");
jfc.setAcceptAllFileFilterUsed(false);
jfc.addChoosableFileFilter(jpgFilter);
jfc.addChoosableFileFilter(gifFilter);
jfc.addChoosableFileFilter(bothFilter);
if (jfc.showOpenDialog(this) == jfc.APPROVE_OPTION) {
String f = jfc.getSelectedFile().toString();
eGambar.setText(f);
((Painter) cGambar).setImage(f);
}
}//GEN-LAST:event_bBukaActionPerformed
//Menyimpan Data di mysql dan mengkopikan gambar yang dipilih
private void bSimpanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bSimpanActionPerformed
String jk = (eL.isSelected() ? "L" : "P");
String perintah = "insert into data_pegawai values (" +
"'" + eID.getText() + "'," +
"'" + eNama.getText() + "'," +
"'" + jk + "'," +
"'" + eAlamat.getText() + "'" +
")";
try {
new NIOCopier(eGambar.getText(), gambar(eID.getText()));
if (stmt.executeUpdate(perintah) > 0) {
JOptionPane.showMessageDialog(this, "Penyimpanan berhasil");
}
} catch (Exception ex) {
cetak(ex.toString());
}
kosongkan();
}//GEN-LAST:event_bSimpanActionPerformed
//Pencarian ID yang sudah disimpan, dan menampilkan gambar kembali sesuai dengan ID
private void bCariActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bCariActionPerformed
String id = eID.getText();
String perintah = "select * from data_pegawai where id = '" + id + "'";
kosongkan();
try {
ResultSet hasil = stmt.executeQuery(perintah);
for (int I = 0; hasil.next(); I++) {
eID.setText(hasil.getString(1));
eNama.setText(hasil.getString(2));
if (hasil.getString(3).equals("L")) {
eL.setSelected(true);
}
if (hasil.getString(3).equals("P")) {
eP.setSelected(true);
}
eAlamat.setText(hasil.getString(4));
((Painter) cGambar).setImage(gambar(id));
}
} catch (Exception ex) {
cetak(ex.toString());
}
}//GEN-LAST:event_bCariActionPerformed
//Mengosongkan Input Field
private void kosongkan() {
eAlamat.setText("");
eGambar.setText("");
//cGambar = new Painter();
((Painter) cGambar).setImage("");
eID.setText("");
eL.setSelected(false);
eP.setSelected(false);
eNama.setText("");
}
//Membuat koneksi ke Database Mysql
public void testDriver() {
try {
java.lang.Class.forName(mySqlDriver);
con = java.sql.DriverManager.getConnection(mySqlUrl, "root", "");
stmt = con.createStatement();
} catch (Exception ex) {
cetak(ex.toString());
}
}
//Menentukan tempat penyimpanan gambar
private String gambar(String id) {
return folder + File.separator + id.trim() + ".jpg";
}
//Class untuk mengkopi file
public class NIOCopier {
public NIOCopier(String asal, String tujuan) throws IOException {
FileInputStream inFile = new FileInputStream(asal);
FileOutputStream outFile = new FileOutputStream(tujuan);
FileChannel inChannel = inFile.getChannel();
FileChannel outChannel = outFile.getChannel();
for (ByteBuffer buffer = ByteBuffer.allocate(1024 * 1024);
inChannel.read(buffer) != -1;
buffer.clear()) {
buffer.flip();
while (buffer.hasRemaining()) {
outChannel.write(buffer);
}
}
inChannel.close();
outChannel.close();
}
}
//Class untuk menampilkan gambar
public class Painter extends Canvas {
Image image;
public void setImage(String file) {
URL url = null;
try {
url = new File(file).toURI().toURL();
} catch (Exception ex) {
cetak(ex.toString());
}
image = getToolkit().getImage(url);
repaint();
}
public void paint(Graphics g) {
double d = image.getHeight(this) / this.getHeight();
double w = image.getWidth(this) / d;
double x = this.getWidth() / 2 - w / 2;
g.drawImage(image, (int) x, 0, (int) (w), this.getHeight(), this);
}
}
Download Aplikasi - appGambar
Download Project - appGambar
nice post
ReplyDeletemakasih y mas, udah mau ngejawab pertanyaan saya,.. tutorialnya bagus banget,..tak oprek-oprek dulu di kos ah,.. he.he..
ReplyDeletemas, rarnya pake password y,.. kok rarnya ga' mau kebuka?
ReplyDeleteom4gus walah om4gus :D
ReplyDelete@Rachmad
ReplyDeleteMasa baru tahu kalo saya baik hati? ;D
@Mr. SKHAI
Keduanya dalam bentuk zip, bukan rar, dan tanpa password. Coba dowloan ulang, karena masalahnya pasti download belum selesai sehingga file-nya rusak. Atau bisa didownload juga dari http://www.box.net/shared/tkmntzs2uo dan http://www.box.net/shared/isjj1pdxm9@mbahsomo
:D
kenapa mbah?
Ngomong aja kalo ada yang salah, bilang aja kalo terlalu jelek gambar bart-nya.
Jadi penasaran, kenapa mbah?
mas, kmaren udh brhasil ngedownload programnya. udah sya tes, alhamdulillah lancar gambarnya mau tersimpan. pas saya coba berikan perintah update, fotonya mau berubah tapi, alamat gambar(eGambar) yang dibacanya masih alamat yang lama. perintah yang saya buat :
ReplyDeleteString sql = "update tfoto set Letak_foto=? where nobp='"+jTextfield1.getText+"'";
trus klo pengen hapus data fotonya gimana mas?. sebelumnya makasih y mas, maaf klo kepanjangan.
@Mr. SKHAI
ReplyDeleteUntuk program ini tidak memerlukan penyimpanan letak file yang asli. Misalkan gambarnya berasal dari flashdisk, maka setelah penyimpanan data, gambar akan dikopikan ke folder images di folder bawah folder program. Kalaupun flashdisk sudah dikeluarkan, gambar yang dikopikan masih ada.
Terlepas dari itu, kalau memerlukan untuk menyimpan, perintahnya adalah :
String sql = "update tfoto set letak_foto = ' " + eGambar.getText() + " ' where nobp = ' " + eID.getText() + " ' ";
Sedangkan untuk menghapus file yang sudah tersimpan adalah :
new File(gambar(eID.getText())).delete();
atau sederhananya:
new File("pict_001.jpg").delete();
makasih banyak y om,... skarang sya udah bisa nyimpan, nampilin, ngedit n hapus foto pake java. walaupun baru dapet satu cara.^_^... 1 x lgi makasih banget y om, tutorialnya bermanfaat banget. pa lagi buat newbie kyak saya, jadi semakin tertarik lagi nih untuk memperdalam java..
ReplyDeleteom, sya buat link alamat om di blog saya bleh ga'?. o y om, satu lagi, bleh ga' saya posting trik2 java om di blog saya?.
ReplyDelete@Mr. SKHAI
ReplyDeleteBoleh lah. Makasih. Lagipula seringkali artikel yang saya buat membingungkan karena sebenarnya sulit untuk membuat tulisan yang enak buat dibaca. Sehingga dituliskan dengan kata-kata mas sendiri tentu akan lebih menarik
mass agus yang baik,...:D saya orang padang yang lagi TA.... bisa tolong saya nga bikin menu yang bagus dengan flash atauu apa lah... (mengenai aplikasi data pegawai dengan java netbeans) ntar saya tinggal menambahhkan palette nya dengan jar yang mas berikan hahahha<---- mau enak aja nih mas" mohon bantuan nya...
ReplyDelete@Roby
ReplyDeleteJava tidak bisa digabungkan dengan object flash. Untuk pembuatan menu bisa dengan gambar ataupun dengan menu standard JMenuBar. Kalau di Netbeans tinggal geser-geser saja sudah jadi kok
mbah, saya kemarin udah coba pemanggilan antar frame java menggunakan jTable(untuk table), dan frame pemanggil(berisi jTextField, jYearChooser, jDateChooser untuk menampung data yang akan diklik(saya menggunakan eventmoseclicked mbah.^_^)). kasusnya seperti ini mbah, untuk data yang ada dalam jTable(nama, nomahasiswa), yang nanti variable penampung pada frame pemanggil berupa jTextField, data yang saya klik mau pindah dari jTable ke jTextField frame pemanggil. akan tetapi untuk jYearChooser dan jDateChooser data yang saya klik dari jTable tidak mau pindah ke frame pemanggil. yang saya ingin tanyakan apa listing perintah netbeans yang harus saya pakai, supaya jYearChooser dan jDateChoosernya mau tampil??. adapun listing jYearChooser dan jDateChooser yang saya buat sekarang seperti dibawah ini :
ReplyDeleteuntuk di Class-nya :
public class mhsakbidobj {
private Integer angkatan(jYearChooser);
private String tggl_lahir(jDateChooser);
public mhsakbidobj(Integer angkatan,String tggl_lahir){
this.angkatan = angkatan;
this.tggl_lahir = tggl_lahir;
}
public Integer getangkatan() {
return angkatan;
}
public void setangkatan(Integer angkatan) {
this.angkatan = angkatan;
}
public Date gettgl1(){
return tgl1;
}
public void settgl1(Date tgl1){
this.tgl1 = tgl1;
}
}
sementara listing untuk di jTablenya(eventmouseclicked-nya) adalah :
dataTable=new mhsakbidobj();
TableModel data=tabelBaru1.getModel();
dataTable.setangkatan(data.getValueAt(tabelBaru1.getSelectedRow(), 0));
dataTable.settgl1(data.getValueAt(tabelBaru1.getSelectedRow(), 6).toString());
untuk listing di frame pemanggil jTable-nya(tempat menampung hasil pengklikan) adalah :
TablMhsAkbid dt=new TablMhsAkbid(this, true);
dt.setVisible(true);
mhsakbidobj mho=dt.getTableData();
if(mho!=null){
jYearChooser1.setYear(mho.getangkatan());
jDateChooser1.setDate(mho.gettgl1());
}
maaf y mbah kepanjangan, solusinya apa y mbah??? bisa diajarin or bisa mintak contoh program jadinya ga' mbah???
o y mbah, kataerror di netbeans-nya :
java.lang.Integer can not be applied to java lang.Object...
makasih untuk jawabannya y mbah....
@Mr. skhai
ReplyDeletemas kan punya blog, jadi buat aja sebuah artikel percobaan yg belum ketemu jawabannya, jadi ditanyakan solusinya kepada pembaca. setelah itu buat komentar disini, atau buat trackback dengan link ke artikel mas, jadi saya bisa ikutan jawab. daripada memakai kolom komentar yang terbatas dengan source itu. kalau jawabannya nanti aja dulu yah, mau jalan2 dulu. yang jelas errornya karena konversi tipe data dari tabel.
makasih sarannya y om(btul juga baru kefikiran saran dari om), sbelumnya mintak maaf, udah nyebut om mbah(kesalahan teknis.^_^). tpi, tolong postingin jawaban permasalahannya y om. makasih sebelumnya..
ReplyDelete@Mr. SKHAI
ReplyDeleteBaru dilihat lagi ^^
Tapi terlalu banyak yang saya aneh dari kode diatas. Misalkan, JYearChooser, saya tidak tahu kalau ada komponen seperti ini di javax.swing, mungkin komponen luar. Object Integer, jarang digunakan secara langsung, lebih mudah menggunakan keyword int. Dan lainnya lagi. Jadi dirapihkan saja dulu, buat postingan. Paling tidak, diupload contohnya nanti saya lihat lagi.
bisa tapi harus di pilih buttonnya.misalnyaklo mo update jtextfield ga bisa ke updatea alert(gambar=null);masa setiap update pilih gambarnya dulu.
ReplyDelete@yts
ReplyDeleteNggak mudeng ini ngomongin masalah apa?
Btw, makasih yah. Di program ini tentu ada banyak kekurangan karena tujuannya cuma sebagai contoh yang bisa dikembangkan sendiri, bukan untuk digunakan sehari-hari
Mas, kebetulan saya lagi cari cara untuk nampilin gambar dan simpan gambar seperti artikel mas ini. Kan yg mas bahas tentang simpan gambar tapi cuma alamatnya aja kan di database? Kalau saya ingin benar2 menyimpan gambar di db gmn caranya ya mas? Terus juga, kalau tampilin gambarnya di JLabel apakah caranya sama dengan menampilkan di canvas?
ReplyDeleteMakasih ya untuk jawabannya. :)
@ s
ReplyDeleteKalau untuk menyimpan gambar langsung, prinsipnya: gambar diambil byte lengkapnya, kemudian dimasukkan dengan tipe data binary ke mysql.
Sedangkan untuk menampilkan gambar di jlabel, gunakan method setIcon.
Saya harap bisa memberi pencerahan :)
Makasih mas buat pencerahannya. Saya uda bisa simpen gambar ke databasenya.. ^^
ReplyDeleteMas, saya bole nanya lg ya?! :)
ReplyDeleteKan mas ud jelasin kalau cara copy gambar gimana. Kalau saya mau hapus gambar yg sudah dicopy itu, gmn caranya ya mas? Jd, misalkan user ud upload image dan image sudah tercopy ke folder tertentu. Kemudian user mau update dan imagenya diganti dengan image lain.
@ s
ReplyDeletePake aja method File.delete()
Ok mas, uda bisa. Thx. ^^
ReplyDeleteMas, saya tanya lg ya. :)
ReplyDeleteKalau copy gambarny itu ke server, gmn ya? Jd, user pake komp di client, dan gambarnya disimpan ke server. Terus spesifikasi foldernya (tempat penyimpanan gambar) bisa user yg setting ga sih mas, mau simpan di mana? Makasih buat jawabannya.
@ s
ReplyDeleteUntuk bisa penyimpanan file di server, sediakan sebuah server ftp dengan hak write user.
Setelah itu gunakan class dengan yang berfungsi untuk mengakses ftp. Sun tidak menyediakan class ini jadi harus mencari dan membuat sendiri.
Untuk masalah path tempat penyimpanan, tinggal sediakan textfield yang isinya diambil sehingga bebas tujuan kopi file-nya.
sebenernya saya ga gitu ngerti mas dengan ftp. mas bisa kasi contoh ga cara penggunaannya? ato ga, klo mau mencari harus mulai dari mana? thx before. :)
ReplyDelete@ s
ReplyDeleteDatabase mysql-nya pake apa? Kalau pake paket server lengkap seperti xampp disitu udah ada. Sedangkan kalo install mysql tersendiri download aja proftp server
kl untuk file gambar yg mau di tampilkan dari database gmn cara mas?
ReplyDeleten gmn carax membuat timer dalam java netbeans mohon bantuanya mas???
@ Anonim
ReplyDeleteKalau untuk menampilkan gambar dari database, dengan cara mengubah tipe data binary menjadi gambar. Mungkin nanti saya buatkan tutorialnya kalo sempat, untuk sementara, silakan cari dulu memakai google.
Sedangkan untuk membuat Timer di java, dengan cara menggunakan class java.lang.Thread dengan method sleep(). Silakan dipelajari. Apabila menggunakan Netbeans, sudah disediakan class Timer di template yang bisa langsung digunakan.
trimakasih dah mau respon...!
ReplyDeleteohya aq dah dpt kl yg pengunaan timernya.., tp kl menyimpan file gambarnya kedalam database lom juga rampung masih kebinggungan cara...dan juga dah search di om google lom nemukan yg tepat....mohon pencerahannya kang!
- kl boleh nanya lagi tentang menampilkan random file dalam 1 kali tampil dan tampilan yg kedua berbeda serta yg berikutx tidak dpt menampilkan file yang sudah dirandom tidak muncul dengan file yg sama....ini juga aq masih kebingungan nech...! yang akan dirandom di keluarkan dari databse nantix.?
kirimi linkx biar aq download nanti kang..!
mailq : durechintosh@gmail.com
terima kasih sebelumnya.....!
@ Anonim
ReplyDelete- Untuk menyimpan gambar, seperti yang sudah dijelaskan sebelumnya, akan saya buatkan artikel kalau ada waktu. Tunggu saja yah
- Silakan memakai fungsi rand() di mysql.
Select * from tabel order by rand();
mas, saya sudah mendownload project applikasi gambar...
ReplyDeletenah ngambil sintaks buat bBuka...tapi ko selalu gagal y??
errornya di bawah ini:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.awt.Canvas cannot be cast to gambar1$Painter
tolong di bales nya y mas?thaks's
@ Anonim
ReplyDeleteCoba perhatikan, Untuk menggunakan method bBuka membutuhkan internal class Painter. Jadi jangan tertinggal untuk ikut dikopi.
salam kenal sob,,,
ReplyDeleteinfonya keren--keren...
saya jadi sangat tertarik,,,
ajari java ya sob,,,
http://trojandecoder.blogspot.com
@IdeGue! Blog
ReplyDeleteInggih mas, maturnuwun, kulo ugi mboten ngertos...
Kalo mau nitip link di komentar, belajar dulu a href yah :D
salam kenal mas...
ReplyDeletebtw kalo pake jdatechooser truus datanya di simpan ke database methodnya gmn y mas??
nb: javanya pake netbeans 6.5 databasenya pake mysql mas...
trimakasih....
@yasha0508
ReplyDeleteJdatechooser yang mana?
Jdk standard tidak punya class Jdatechooser...
slm knl mas... mw nanya ni, klo manggil foto td untuk buat laporan gmn y mas?? laporanx pakai inet crstal clear atw pakai java script jg blh...
ReplyDelete@Defni Yusnita
ReplyDeleteGunakan tipe field picture dilaporan, kemudian memanggil alamat file gambar yg tersimpan berdasarkan id row yang ditampilkan
Tx Berat OM, tutorial ini benar2 sangat membantu saya!!!
ReplyDeleteBtw cara nyimpen ukuran file gambarnya (size) ke database gmn caranya om?
-saya pake mysql-
makasih sebelumnya
@gi3
ReplyDeleteGunakan method length di system.io.File untuk mendapatkan ukuran file, setelah itu simpan di database.
hehe,,,
ReplyDeletebelum paham Om, bisa di kasih contoh XD
om kalo misalnya mw save di beda Directory bisa?
ReplyDelete@Kahfi Deliansyah
ReplyDeleteBisa
bisa upload project yang barunya ga? ga bisa di downlod.. helpme...
ReplyDeletesaya sangat tertarik dengan tutorial anda :)
ReplyDeletesaya mau tanya, jika membuat aplikasi tingkat multy user, dengan konsep penyimpanan gambar di folder, bagaimana cara komputer lain bisa akses foto tersebut?
mohon pencerahan dari om agus, saya bingun disitu om :D
@andreas
ReplyDeleteDownload juga dari http://www.box.net/shared/tkmntzs2uo dan http://www.box.net/shared/isjj1pdxm9
@Tepoci
ReplyDeleteGambar harus disimpan di database jaringan, sehingga bisa diakses dari mana saja yg terhubung komputer tersebut. Gunakan proyek ini untuk contoh:
http://blog.om4g.us/2010/04/appgambar-2-0-prototipe-java-untuk-simpan-gambar-di-database/
lho om misal file gambar disimpan dalam bentuk string bisa kan??
ReplyDeleteka ntopik diatasa tadi menyebutkan jika make longblob kuatirnya ntr databasenya kagak muat gt cz saya gag baca ampe ahir seh gimana jika dipake text aja kan waktu input data berupa string gt
sebelumnya thx om..
om, bisa berikan potongan coding yg utk memanggil alamat file gambar yg dsimpan ke laporan? sbgai pncerahan bgtu, soalx buntu bnget nih.
ReplyDeleteThis comment has been removed by the author.
ReplyDeletekereeen Om... ntar kalo saya bisa java, saya berambisi untuk membagi2 ilmu saya ke orang laen kayak yg Om lakuin ne.. thanks ya om...
ReplyDeleteaplikasinya sudah saya jalankan ne,, dan berhasil.. saya modif dikit ya,.. hanya menambahkan beberapa field dlm database dan tambahan textbox nya.. :)
@Zul Fadli
ReplyDeleteCoba juga yg di website baru, http://om4g.us
nice post!
ReplyDeleteoke Om.. siap siaaaap... :-)
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteHallo Om Agus..
ReplyDeletesaya udah liat projeknya, yang saya ingin tanyakan, bagaimana gambarnya dapat disimpan di folder ya? soalnya image yang sudah di upload kok ga ada tersimpan di folder image di projeknya ya?
mohon pencerahannya yah ^^
Coba cari id yg sudah tersimpan. Apabila gambarnya keluar lagi, berarti gambar tersimpan. Gambar tersimpan di working directory program. Coba lakukan debug untuk bisa tahu lokasi nya
Deleteharusnya tersimpan di C:\Users\USER\Documents\NetBeansProjects\Recruitment\images
ReplyDeletetetapi di programnya tidak ada loh om..
@Indah
ReplyDeleteCoba lakukan debug untuk menampilkan working folder supaya bisa tahu lokasi penyimpanan. Program harus punya hak akses pada folder tersebut. Selain itu tampilkan error dari try catch.
atau
Coba gunanya penyimpanan database sehingga tidak ada masalah seperi ini:
http://blog.om4g.us/2010/04/appgambar-2-0-prototipe-java-untuk-simpan-gambar-di-database/
nice...
ReplyDeletethanks buat sharing nya, sangat berguna bgt buat saya
mas mohon pencerahannya dong ,
ReplyDeletecodingan ini untuk mengetahui letak file gambarnya kan yah??
folder = System.getProperty("absensi.dir") + File.separator + "images";
klo saya ingin mengambil gambar dari folder lain bgmn tuh mas, misalnya saya mau ambil dari
D:\data\gambar\images
@hamdy
ReplyDeleteGanti atau buat perintah set property.
System.setProperty("absensi.dir", "D:\data\gambar\images");
mas setelah saya buat terdapat pesan error ini..
ReplyDeleteException in thread "AWT-EventQueue-0" java.lang.NullPointerException
at beasiswa.program.penilaian.formSeleksi1$Painter.paint(formSeleksi1.java:670)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
at sun.awt.RepaintArea.paint(RepaintArea.java:240)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:347)
@imam
ReplyDeleteBiasanya karena sebuah objek belum di-create atau sudah di destroy, tapi diberi perintah paint. Jadi saya belum tau kalau belum lihat baris source code lengkap.
makasih Om
ReplyDeleteni ilmu berharga banget
mas mau nanya, merubah gambar dan programnya menampilkan langsung gambar yang baru ?
ReplyDeleteuntuk update gambar dengan coding sama dengan insert nya "new NIOCopier(eGambar.getText(), gambar(textNoRegistrasi.getText()));"
gambar di folder nya sudah ganti tapi di programnya yng tampil gambar yang lama
kecuali programnya di restart gambar yang baru
mohon jawabannya
@L-kyuu
ReplyDeleteLupa belum di-flush. Rubah bagian setimage:
public void setImage(String file) {
URL url = null;
try {
url = new File(file).toURI().toURL();
} catch (Exception ex) {
cetak(ex.toString());
}
image = getToolkit().getImage(url);
image.flush();
repaint();
}
makasih Om Cepat Membalasnya
ReplyDeletedan makasih Om jawabannya
Semoga Sukses !! :)
gan, nebeng yaa.. kalo untuk editnya gimana source nya gan ? q kbentur di gmbar ny nih,,, untuk source update ny.. kalo simpan udh bisa... mhon pncerahan nya yaa ... hehe
ReplyDelete@Hasnan
ReplyDeleteUbah perintah di bSimpan, initinya seperti ini:
//Menyimpan Data dan Gambar
private void bSimpanActionPerformed(java.awt.event.ActionEvent evt) {
String jk = (eL.isSelected() ? "L" : "P");
String perintahInsert = "insert into data_pegawai values (" +
"'" + eID.getText() + "'," +
"'" + eNama.getText() + "'," +
"'" + jk + "'," +
"'" + eAlamat.getText() + "'" +
")";
String perintahUpdate = "update data_pegawai set " +
"nama = '" + eNama.getText() + "'," +
"jenis_kelamin = '" + jk + "'," +
"alamat = '" + eAlamat.getText() + "' " +
"where id = '" + eID.getText() + "'";
try {
if (stmt.executeUpdate(perintahInsert) > 0) {
JOptionPane.showMessageDialog(this, "Penyimpanan berhasil");
}
new NIOCopier(eGambar.getText(), gambar(eID.getText()));
} catch (Exception ex) {
cetak(ex.toString());
}
try {
if (stmt.executeUpdate(perintahUpdate) > 0) {
JOptionPane.showMessageDialog(this, "Update berhasil");
}
new NIOCopier(eGambar.getText(), gambar(eID.getText()));
} catch (Exception ex) {
cetak(ex.toString());
}
kosongkan();
}
Om kl mau nampilin foto sma data lainnya gmana scriptnya? maklum newbie nih
ReplyDeletemas, koq muncul pesan
ReplyDeleteException in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.awt.Canvas cannot be cast to View.Admin.TambahBuku$Painter
padahal kelas painternya uda dicopyin
Dari: Farhan
ReplyDeleteOm agus, kok gk bisa di simpan?? aq buat database dengan field sbb:
id value=15
nama value = 25
jenkel value=15
alamat value=50
terus gambar itu di simpan di mana?
Dari : Farhan
ReplyDeleteUdah Berhasil OM,, saya yang salah edit coding nya..
heheheh
Dari: Farhan
ReplyDeleteOh iya om agus,, gmn cara menampilkan foto yang sudah di save tadi ke laporan
saya memakai i-net crystal clear
gmn ya om agus??
tolong minta project nya donk om, gak bisa di download tu..
ReplyDeleteOm4gus punya referensi atau cara untuk attach file word ke database? Setelah itu file word tersebut kita liat sama halnya iReport yg bisa menampilkan berbagai macam data yg udh di inputkan ke database kita. Kalo ada bisa kasih tau saya om, atau mungkin om punya referensi lain yg tujuan nya sama silahkan aja. Aku tunggu om bantuannya
ReplyDeletemas mau tanya nih,saya bikin program java terus udah di compile,tidak ada eror,pas saya clean and build juga tidak ada error
ReplyDeletenah pas saya eksekusi file yg di folder dist format jar nya,,ada pesan erorr 18 Report file not found : file:C:/Users/ACER/Documents/NetBeansProjects/testing/dist/src/laporan/laporananggota.rpt
itu kenapa ya? mohon pencerahanyya mas :D
makasih sebelumnya
@ jefri handrifman
ReplyDeleteNamanya runtime error, coba dicek apakah lokasi folder laporananggota.rpt sudah betul?
Assalamu'alaikum,
ReplyDeletewiih, terima kasih banyak Mas buat sharing ilmu nya .
mas mau tanya,
kalo untuk upload video di Java itu gmn ya ?
saya dapet task bikin semacam 'movie maker' gitu .
Trims
@Heru,
ReplyDeleteSederhananya, sama saja dengan gambar, yang pertama perlu diganti filternya supaya bisa video misalkan mp4.
bothFilter = new FileNameExtensionFilter("Gambar JPEG dan GIF", "jpg", "gif");
mas kq link downloadny gagal?
ReplyDeletemhon bantuannya
mas kq link downloadny gagal?
ReplyDeletemhon bantuannya
Link nya udah rusak mas, bisa diperbaiki? Terima kasih..
ReplyDeleteSelamat malam gan, linknya sudah mati, bisa diperbaiki? Terimakasih
ReplyDeleteApakah ada link download terbaru?
ReplyDeletehttps://bayanlarsitesi.com/
ReplyDeleteManisa
Denizli
Malatya
Çankırı
R8A
3C8ED
ReplyDeletebuy sustanon
Eskişehir Evden Eve Nakliyat
Tokat Evden Eve Nakliyat
oxandrolone anavar for sale
order steroids
buy peptides
Yalova Evden Eve Nakliyat
Denizli Evden Eve Nakliyat
Kırıkkale Evden Eve Nakliyat
A08D0
ReplyDeletebuy turinabol
order parabolan
order steroid cycles
sarms
buy boldenone
primobolan for sale
sarms
buy dianabol methandienone
sustanon
67FCB
ReplyDeletekonya en iyi rastgele görüntülü sohbet
uşak canlı sohbet siteleri
sesli sohbet
parasız sohbet siteleri
artvin en iyi görüntülü sohbet uygulaması
samsun parasız görüntülü sohbet
kars canlı sohbet siteleri
bartın canlı sohbet ücretsiz
sivas kadınlarla sohbet et
69418
ReplyDeleteBitcoin Nasıl Alınır
Onlyfans Beğeni Hilesi
Trovo Takipçi Satın Al
Dlive Takipçi Hilesi
Pinterest Takipçi Satın Al
Paribu Borsası Güvenilir mi
Coin Nasıl Kazılır
Bitcoin Kazanma
Twitter Retweet Satın Al