Tulisan ini merupakan lanjutan dari artikel saya sebelumnya, yaitu Menampilkan Gambar dalam JPanel. Pada artikel tersebut saya hanya menampilkan file gambar yang ada di komputer ke dalam JPanel. Nah, pada tulisan kali ini saya ingin mengembangkannya, dimana gambar tersebut saya simpan ke dalam database. Database yang saya gunakan adalah MySQL, dan editornya adalah NetBeans 6.9.1 dan aplikasi yang saya buat berbasis desktop atau menggunakan Swing. Dalam pembuatan aplikasi ini, saya juga menerapakan DAO pattern yang sudah sedikit saya bahas sebelumnya disini.
Langsung saja saya mulai, pertama buat dulu databasenya, nama database yang saya gunakan adalah Coba dan untuk nama tabelnya adalah Karyawan, jadi scriptnya sebagai berikut.
CREATE DATABASE Coba; USE Coba; CREATE TABLE Karyawan( id int PRIMARY KEY AUTO_INCREMENT, nama VARCHAR(50) NOT NULL, alamat VARCHAR(100) NOT NULL, jenisKelamin VARCHAR(15) NOT NULL, tglLahir DATE, foto BLOB);
Tipe data yang digunakan untuk menyimpan gambar adalah BLOB atau Binary Large Object. Kemudian kita buka netbeans, lalu buat project baru dengan nama bebas terserah anda. Lalu buatlah sebuah JPanel yang mana nantinya akan kita gunakan sebagai tempat untuk menampilkan gambar tersebut. Jangan lupa untuk menambahkan library mysql ke dalam project anda.
Kemudian pada klik tab source, lalu ketikkan kode berikut.
/** * PanelGambar.java * * Created on May 8, 2012, 3:42:41 PM */ package arya.form; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author arya */ public class PanelGambar extends javax.swing.JPanel { /** Creates new form PanelGambar */ private Image image; public PanelGambar() { initComponents(); } public void setImage(Image image){ this.image = image; MediaTracker mediaTracker = new MediaTracker(this); mediaTracker.addImage(image, 0); try { mediaTracker.waitForID(0); } catch (InterruptedException ex) { Logger.getLogger(PanelGambar.class.getName()).log(Level.SEVERE, null, ex); } initComponents(); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0,getWidth(),getHeight(), this); } }
Sourcecode tersebut merupakan source code yang terdapat pada artikel saya sebelumnya, hanya saja saya melakukan sedikit perubahan, supaya bisa sedikit dinamis. Dimana perubahan tersebut adalah saya menggunakan method setImage untuk merubah gambar pada JPanel. Jika sudah selesai, untuk selanjutnya buatlah desain form seperti gambar dibawah ini.
Dibawah ini merupakan keterangan untuk masing – masing nomor diatas.
No | Jenis | Nama | Fungsi |
1 | JTextField | txtNama | Menampung nama karyawan |
2 | JTextField | txtAlamat | Menampung alamat karyawan |
3 | JRadioButton | rdPria | Mewakili jenis kelamin pria |
4 | JRadioButton | rdPerempuan | Mewakili jenis kelamin wanita |
ButtonGroup | buttonGroup1 | Menampung kedua JRadioButton | |
5 | JDateChooser | jdcLahir | Menampung tanggal lahir karyawan |
6 | JTextField | txtFoto | Menampung nama / path gambar |
7 | JButton | btnCari | Mencari file gambar di komputer |
8 | PanelGambar | panelGambar1 | Menampilkan gambar yang telah dipilih |
9 | JButton | btnSimpan | Menyimpan data karyawan baru |
10 | JButton | btnUbah | Menyimpan perubahan data karyawan |
11 | JButton | btnHapus | Menghapus data karyawan |
12 | JButton | btnBatal | Menghapus isi komponen |
13 | JTable | JTable1 | Menampilkan semua data karyawan |
JScrollPane | jScrollPane1 | Menampung JTable | |
14 | JPanel | jPanel1 | Menampung komponen isian data karyawan |
Untuk menampung pilihan tanggal lahir saya menggunakan control tambahan yaitu JDateChooser, control tersebut bisa dilihat disini. Nah, jika sudah selesai mendesain form, mari kita lanjutlkan dengan membuat entity. Mengapa demikian ? Karena saya menggunakan DAO pattern dalam pembuatan aplikasi ini. DAO pattern sudah saya bahas sekilas disini, namun hanya sekilas saja. Jika ingin lebih mendetail bisa melihat pada berbagai artikel atau buku yang ada. Dibawah ini adalah source code entity karyawan.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package arya.entity; import java.util.Date; /** * * @author arya */ public class Karyawan{ private Long id; private String nama; private String alamat; private Date tglLahir; private String jenisKelamin; private byte[] foto; public byte[] getFoto() { return foto; } public void setFoto(byte[] foto) { this.foto = foto; } public String getAlamat() { return alamat; } public void setAlamat(String alamat) { this.alamat = alamat; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getJenisKelamin() { return jenisKelamin; } public void setJenisKelamin(String jenisKelamin) { this.jenisKelamin = jenisKelamin; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public Date getTglLahir() { return tglLahir; } public void setTglLahir(Date tglLahir) { this.tglLahir = tglLahir; } }
Entity tersebut berfungsi untuk mengenkapsulasi data karyawan baik dari database untuk ditampilkan ke aplikasi atau dari aplikasi untuk disimpan ke database. Entity merupakan class yang biasanya mendeskripsikan tabel yang ada didalam database. Jika diperhatikan dengan seksama, field – field yang terdapat dalam class Karyawan tersebut, sama dengan kolom – kolom yang terdapat dalam tabel karyawan, hanya saja tipe datanya yang sedikit berbeda. Hal ini sangat membantu bila ada programmer lain yang ingin memaintenance aplikasi kita. Karena dengan adanya entity, programmer lain tahu apa saja tabel, kolom dan sebagainya yang tersimpan didalam database tanpa harus membuka database. Untuk menampung data foto karyawan supaya bisa disimpan ke dalam database kita menggunakan byte sebagai tipe datanya namun berupa array 1 dimensi.
Karena saya menggunakan DAO pattern, maka untuk selanjutnya kita membuat interface, yang isinya merupakan pendefinisian dari method – method untuk memanipulasi database.
package arya.dao; import arya.entity.Karyawan; import java.util.List; /** * * @author arya */ public interface KaryawanDao { public void save(Karyawan karyawan); public void update(Karyawan karyawan); public void delete(Karyawan karyawan); public List<Karyawan> getAll(); }
Selanjutnya kita buat implementasi dari interface tersebut seperti ini.
package arya.dao.impl; import arya.dao.KaryawanDao; import arya.entity.Karyawan; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Date; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author arya */ public class KaryawanDaoImpl implements KaryawanDao{ private Connection connection; public KaryawanDaoImpl(Connection connection){ this.connection = connection; } public void save(Karyawan karyawan) { String SQL = "INSERT INTO Karyawan(nama,alamat,jenisKelamin,tglLahir,foto) VALUES(?,?,?,?,?)"; try { PreparedStatement statement = connection.prepareStatement(SQL); statement.setString(1, karyawan.getNama()); statement.setString(2, karyawan.getAlamat()); statement.setString(3, karyawan.getJenisKelamin()); statement.setDate(4, new Date( karyawan.getTglLahir().getTime())); statement.setBytes(5, karyawan.getFoto()); statement.executeUpdate(); } catch(SQLException ex) { Logger.getLogger(KaryawanDaoImpl.class.getName()).log(Level.SEVERE, null, ex); } } public void update(Karyawan karyawan) { String SQL = "UPDATE Karyawan set nama=?, alamat=?,jenisKelamin=?,tglLahir=?,foto=? WHERE id=?"; try { PreparedStatement statement = connection.prepareStatement(SQL); statement.setString(1, karyawan.getNama()); statement.setString(2, karyawan.getAlamat()); statement.setString(3, karyawan.getJenisKelamin()); statement.setDate(4, new Date(karyawan.getTglLahir().getTime())); statement.setBytes(5, karyawan.getFoto()); statement.setLong(6, karyawan.getId()); statement.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(KaryawanDaoImpl.class.getName()).log(Level.SEVERE, null, ex); } } public void delete(Karyawan karyawan) { String SQL="DELETE FROM Karyawan WHERE id=?"; try { PreparedStatement statement = connection.prepareStatement(SQL); statement.setLong(1, karyawan.getId()); statement.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(KaryawanDaoImpl.class.getName()).log(Level.SEVERE, null, ex); } } public List<Karyawan> getAll() { String SQL = "SELECT id,nama,alamat,jenisKelamin,tglLahir,foto FROM Karyawan"; List <Karyawan> list = new ArrayList(); Karyawan karyawan = null; try { PreparedStatement statement = connection.prepareStatement(SQL); ResultSet rs = statement.executeQuery(); while (rs.next()){ karyawan = new Karyawan(); karyawan.setId(rs.getLong(1)); karyawan.setNama(rs.getString(2)); karyawan.setAlamat(rs.getString(3)); karyawan.setJenisKelamin(rs.getString(4)); karyawan.setTglLahir(rs.getDate(5)); karyawan.setFoto(rs.getBytes(6)); list.add(karyawan); karyawan=null; } } catch (SQLException ex) { Logger.getLogger(KaryawanDaoImpl.class.getName()).log(Level.SEVERE, null, ex); } return list; } }
Anda bisa lihat kode DAO tersebut hanya berisi kode untuk memanipulasi database. Kode tersebut tidak mengandung business logic aplikasi. Jadi aplikasi nantinya cukup memanggil method – method yang sudah disediakan oleh DAO tersebut. Untuk selanjutnya kita buat kelas, semacam utility class, yang isinya koneksi ke database dan objek – objek DAO tersebut.
package arya.koneksi; import arya.dao.KaryawanDao; import arya.dao.LaporanKaryawanDao; import arya.dao.impl.KaryawanDaoImpl; import arya.dao.impl.LaporanKaryawanDaoImpl; import com.mysql.jdbc.Driver; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class Koneksi { private static Connection connection; private static KaryawanDao karyawanDao; private Koneksi(){ } private static Connection getConnection() { if (connection==null){ try { DriverManager.registerDriver(new Driver()); connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/Coba", "root","bandenk"); } catch (SQLException ex) { Logger.getLogger(Koneksi.class.getName()).log(Level.SEVERE, null, ex); } } return connection; } public static KaryawanDao getKaryawanDao() { if (karyawanDao==null){ karyawanDao = new KaryawanDaoImpl(getConnection()) } return karyawanDao; } }
Dengan adanya class utilty tersebut, kita akan membuat objek DAO tersebut menjadi seperti ini.
KaryawanDao dao = Koneksi.getKaryawanDao();
bukan
KaryawanDao dao = new KaryawanDaoImpl();
Teknik ini biasanya dikenal dengan istilah Dependency Injection.
Nah, kemudian kita pindah ke form yang telah kita buat tadi, untuk kita isi dengan business logic aplikasi kita. Pertama, kita buat dulu inner class yang meng-extends class AbstractTableModel. Fungsi kelas ini adalah untuk memudahkan kita didalam memanipulasi JTable. Di dalam constructor kita buat objek table modelnya lalu kita isikan ke dalam jTable1, selain itu kedua JRadioButton yang kita punya, kita masukkan ke dalam buttonGroup1.
/** * FrameKaryawan.java * * Created on May 8, 2012, 2:13:40 PM */ package arya.form; import arya.entity.Karyawan; import arya.koneksi.Koneksi; import java.awt.Image; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.table.AbstractTableModel; /** * * @author arya */ public class FrameKaryawan extends javax.swing.JFrame { private TableModelKaryawan model; private List<Karyawan> karyawans; private Image image; private Karyawan karyawan; public FrameKaryawan() { initComponents(); karyawans = new ArrayList(); buttonGroup1.add(rdPria); buttonGroup1.add(rdPerempuan); model = new TableModelKaryawan(); jTable1.setModel(model); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private class TableModelKaryawan extends AbstractTableModel{ private List <Karyawan> list = new ArrayList(); public void setData(List<Karyawan> list){ this.list = list; fireTableDataChanged(); } public int getRowCount() { return list.size(); } public int getColumnCount() { return 4; } public Object getValueAt(int rowIndex, int columnIndex) { switch(columnIndex){ case 0 : return list.get(rowIndex).getNama(); case 1 : return list.get(rowIndex).getAlamat(); case 2 : return list.get(rowIndex).getJenisKelamin(); case 3 : return list.get(rowIndex).getTglLahir(); default: return null; } } @Override public String getColumnName(int columnIndex) { switch(columnIndex){ case 0 : return "Nama"; case 1 : return "Alamat"; case 2 : return "Jenis Kelamin"; case 3 : return "Tanggal Lahir"; default: return null; } } public void insertTable(Karyawan karyawan){ list.add(karyawan); fireTableDataChanged(); } public void updateTable(Karyawan karyawan,int rowIndex){ list.set(rowIndex, karyawan); fireTableDataChanged(); } public Karyawan get(int rowIndex){ return list.get(rowIndex); } } }
Kemudian kita buat method untuk me-load seluruh data Karyawan dari database dan juga method untuk mengembalikkan form seperti keadaan semula.
private void loadData(){ karyawans = Koneksi.getKaryawanDao().getAll(); model.setData(karyawans); } private void clear(){ txtNama.setText(""); txtAlamat.setText(""); buttonGroup1.clearSelection(); jdcLahir.setDate(new Date()); txtFoto.setText(""); panelGambar1.setImage(null); btnUbah.setEnabled(false); btnHapus.setEnabled(false); btnSimpan.setEnabled(true); }
Method tersebut kita panggil pada saat objek Frame dibuat, maka dari kita panggil method tersebut pada constructor. Skenario aplikasi ini adalah, ketika form pertama kali ditampilkan, maka seluruh data ditampilkan di JTable serta tombol ubah dan hapus kita set enable menjadi false, kedua tombol tersebut diaktifkan pada saat JTable diklik.
Jika sudah selesai, kita beri event pada masing – masing tombol, yang pertama untuk tombol cari atau btnCari. Tombol ini berfungsi untuk mencari gambar di komputer dan menampilkannya ke dalam JPanel. Kodenya sebagai berikut.
private void btnCariActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser chooser = new JFileChooser(System.getProperty("user.home")); chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); chooser.setFileFilter(new FileNameExtensionFilter("jpg|png|bmp", "jpg","png","bmp")); if(chooser.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){ File file=chooser.getSelectedFile(); try { image = ImageIO.read(file); panelGambar1.setImage(image); } catch (IOException ex) { Logger.getLogger(FrameKaryawan.class.getName()).log(Level.SEVERE, null, ex); } txtFoto.setText(file.getAbsolutePath()); } }
Kemudian dibawah ini adalah kode untuk event tombo simpan atau btnSimpan.
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { karyawan = new Karyawan(); karyawan.setNama(txtNama.getText()); karyawan.setAlamat(txtAlamat.getText()); karyawan.setTglLahir(jdcLahir.getDate()); if (rdPria.isSelected()){ karyawan.setJenisKelamin("Laki - Laki"); }else{ karyawan.setJenisKelamin("Perempuan"); } if(!txtFoto.getText().equals("")){ ObjectOutputStream objectOutputStream=null; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { objectOutputStream = new ObjectOutputStream(outputStream); ImageIcon icon = new ImageIcon(image); objectOutputStream.writeObject(icon); objectOutputStream.flush(); objectOutputStream.close(); } catch (IOException ex) { Logger.getLogger(FrameKaryawan.class.getName()).log(Level.SEVERE, null, ex); } karyawan.setFoto(outputStream.toByteArray()); } Koneksi.getKaryawanDao().save(karyawan); loadData(); clear(); }
Supaya gambar bisa disimpan ke dalam database saya harus merubah gambarnya yang bertipe Image menjadi ImageIcon, karena kalau tidak saya mendapat pesan error.
“java.io.NotSerializableException: java.awt.image.BufferedImage”
Kemudian untuk tombol ubahnya atau btnUbah
private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { karyawan.setNama(txtNama.getText()); karyawan.setAlamat(txtAlamat.getText()); karyawan.setTglLahir(jdcLahir.getDate()); if (rdPria.isSelected()){ karyawan.setJenisKelamin("Laki - Laki"); }else{ karyawan.setJenisKelamin("Perempuan"); } if(!txtFoto.getText().equals("")){ ObjectOutputStream objectOutputStream=null; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { objectOutputStream = new ObjectOutputStream(outputStream); ImageIcon icon = new ImageIcon(image); objectOutputStream.writeObject(icon); objectOutputStream.flush(); } catch (IOException ex) { Logger.getLogger(FrameKaryawan.class.getName()).log(Level.SEVERE, null, ex); } karyawan.setFoto(outputStream.toByteArray()); } Koneksi.getKaryawanDao().update(karyawan); loadData(); clear(); }
Untuk tombol hapus atau btnHapus kodenya seperti ini.
private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { Koneksi.getKaryawanDao().delete(karyawan); loadData(); clear(); }
Sedangkan untuk tombol Batal, cukup panggil method clear saja.
private void btnBersihActionPerformed(java.awt.event.ActionEvent evt) { clear(); }
Kemudian tambahkan pada constructor, event ketika JTable diklik maka data karyawan yang diklik akan tampil pada semua komponen seperti textfield, radiobutton dan yang lainnya.
public FrameKaryawan() { initComponents(); buttonGroup1.add(rdPria); buttonGroup1.add(rdPerempuan); model = new TableModelKaryawan(); jTable1.setModel(model); karyawans = new ArrayList(); loadData(); jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent lse) { int row = jTable1.getSelectedRow(); if (row !=-1){ karyawan = model.get(row); txtNama.setText(karyawan.getNama()); txtAlamat.setText(karyawan.getAlamat()); jdcLahir.setDate(karyawan.getTglLahir()); if (karyawan.getJenisKelamin().equalsIgnoreCase("Laki - Laki")){ rdPria.setSelected(true); }else{ rdPerempuan.setSelected(true); } if (karyawan.getFoto()!=null){ try { ObjectInputStream inputStream = new ObjectInputStream(new ByteArrayInputStream(model.get(row).getFoto())); ImageIcon icon = (ImageIcon) inputStream.readObject(); image = icon.getImage(); panelGambar1.setImage(image); inputStream.close(); } catch (ClassNotFoundException ex) { Logger.getLogger(FrameKaryawan.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(FrameKaryawan.class.getName()).log(Level.SEVERE, null, ex); } } } btnUbah.setEnabled(true); btnHapus.setEnabled(true); btnSimpan.setEnabled(false); } }); }
Coba compile dan jalankan aplikasi tersebut, jika tidak ada error, maka hasinya akan seperti ini.
Untuk file latihannya dapat didownload disini.
Semoga Bermanfaat 😀
Comments on: "Menyimpan Gambar ke dalam Database (Java)" (111)
mas bisa liat database nya ga ?
type gambar dalam databae nya apa ?
makasih
type gambar yang digunakan adalah blob.
gan, utk nampung image itu pke panel biasa atau panel khusus ??
ane pake panel biasa gan…
tpi ane kasi sedikit kode tambahan supaya bisa menampilkan gambar…
mas saya bisa menampilkan gambar seperti tutorial yang mas kasih tapi adsa permasalahan ketika pembuatan report,report data gambar nya tidak mau muncul tapi ketika data gambar di isi manual bisa di munculkan kira kira gimana ya mas
mas mau tanya itu JPanelnya kok sampai JPanel6 itu buat apa ya,saya lihat gak ada JPanel lg?? mohon bantuannya 🙂
JPanel yang mana ya mbak ?? mungkin bisa dijelaskan lagi di bagian mana…
😀
mas…, tanya nie….,
q dah melakukan langkah2 seperti di atas, tp kenapa gambarnya ga muncul ya…., q pake jinternalframe
terimakasih
apakah ada pesan error yang muncul ??
ngambil panelGambar dari frameKaryawan gimana ya ?
nggak jadi mas udah dapat aku 😀
OK…
mas permasalahan saya sama kayak fasya tolong pencerahannya mas … terima kasih
buat dulu Class PanelGambar yang bisa dilihat disini
terimakasih mass ,, ada 1 permasalahan lg image yang saya masukan tidak bisa ukuran besar resulinya … bisa bantu lg ga mas .. terimakasih .
mas … panelGambar1.setImage(image); d tmpatq g’ bisa, ada tmbahan source yg lain jga y ?
ada pesan error yang muncul ??
link download nya error mas…
sudah saya perbaiki, coba sekali lagi…
maaf mas, masih belum mau, hehe..
‘Save Images.rar’ is unavailable. File ini tidak lagi tersedia karena identik dengan file yang dilarang karena adanya klaim.
Bisa dicoba lagi…
mas, file Save Images.rar nya udah diapus ya? gak bisa didownload. mohon upload lagi dong mas. makasih..
Filenya masih ada, tapi entah kenapa tidak bisa di download… ini saya mau perbaiki… saya mau upload ulang
Linknya broken bang…!
Ada link yang baru gak???
Syukron
iya… maaf lagi maintenis… eh maintenance…
Link nya dah OK.
Tapi gak bisa save foto.
run:
May 07, 2015 11:07:56 AM arya.dao.impl.KaryawanDaoImpl save
SEVERE: null
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘foto’ at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4118)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
at arya.dao.impl.KaryawanDaoImpl.save(KaryawanDaoImpl.java:39)
at arya.form.FrameKaryawan.btnSimpanActionPerformed(FrameKaryawan.java:471)
at arya.form.FrameKaryawan.access$1500(FrameKaryawan.java:40)
at arya.form.FrameKaryawan$3.actionPerformed(FrameKaryawan.java:321)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:720)
at java.awt.EventQueue$4.run(EventQueue.java:718)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
======================================================================
Kenapa ya?
Kebesaran gitu ukuran gambarnya?
padahal cuma 50 KB.
tipe kolomnya sudah blob ?
yg di cari2 akhir@ nemu di sini..
thank bget udh mau berbagi..
oa ane bgi tips bgi yg mau download tutorial yg ini…
linknya sih emang agk bermasalah… tpi filenya msih bisa di download..
caranya klik pada tombol “Tambah Ke Akun Saya” bgi yg udah ad akun 4share..
trus buka akun anda & klik aj file yg baru di tambhkan…
nah tinggal download akhirnya…
moga bermanfaat…
Terima Kasih banyak gan
yups sama2…
mga sukses…..
🙂
mas bisa minta program ya gak
biar mudah dipelajari
mas gak bisa di download ni,
tolong kirim email aja ya projectnya kalo berkanan 🙂
dah bisa mas …
makasih banyak atas tutorialnya ..
ini bener – bener bermanfaat buat saya 🙂
di tunggu tutorial – tutorial selanjutnya
Cara downloadnya, dengan membuat akun di 4shared… lalu cari tombol tambah ke akun saya… login k 4shared.. baru download
masih ga bisa om,,, file udah di banned.. upload ulang dong k mediafire om, atau ke zippyshare. butuh sekali om… mksih bnyak awak.dendi@gmail.com
mas saya bisa sourcenya sebab gak bisa didownload tlng kirim ke email govindasurya13@gmail.com
om… udh gk bisa di download file latihannya..
tolong om kirim ke pringgo.prasetyo@gmail.com
thanks
Ga bisa di-donlod gan..
‘save images.rar’ is unavailable. File ini tidak lagi tersedia karena identik dengan file yang dilarang karena adanya klaim.
iya… maaf mas belum sempat nyari tempat buat naruh filenya…
msih ngk bisa download bg…
bisa tolong kirim ke juliadiputra27@gmail.com.
trimakasih sblum nya…
Link nya ditunggu ya gan….
kak nggak bisa downld 😦
bisa dkirim nggak kak?
soalnya lagi butuuuuuh bangeeeet,
kalo bisa, ni email aq melindathesa@gmail.com
mkasih 🙂
help ajja mas,, linkx g’ berfungsi lagi……riorefaldi@rocketmail.com
“panelGambar1” mas gimana bisa di “setImage” ? adakah source tambahan ?ato di JPanel di olah dulu supaya bisa di “setImage ” ? 😀
itu karena saya buat memodifikasi panel supaya bisa menampilkan gambar..
bisa diliat pada artikel
mas. link downloadnya kok error y ??? aku butuh banget soalnya
terus waktu aku nyoba . panelGambar1.setImage(null); itu gak mau . . Aku bingung maksudnya dari panelGambar1 itu berasal dari FormPanelGambar . apa dr Form Karyawan yang ada panelnya tetapi namanya panelGambar1 ??
tolong mas. . secepatnya .
klo boleh juga . ini email saya justinisme77@gmail.com
Trims mas 🙂
saya memodifikasi panel mas.. supaya bisa menampilkan gambar.. bisa dilihat disini
Thanks mas . . terus berkarya y mas. and update yang bagus” khususnya yg berguna kayak gini di pemrograman JAVA (Netbeans IDE) . Aku merasa terbantu dengan Blog ini
thanks 🙂
terima kasih atas dukungannya…
saya belum sempat update lagi, masih ngurusin skripsi…
ga bisa di download mas, add to my account juga gi bisa?
iya maaf mas, blum dapet tempat buat naruh source code…
upload ulang dong om,butuh banget nih contoh source nya,buat presentasi
link uploadnya sudah saya perbaiki..
dicoba dulu
Gan mau tanya nih kok yang kodingannya PanelGambar1.setImage(image) erorr ya padahal class PanelGambar nya udah dibikin?
bisa kasi tau pesan error nya..
mas.. ini ada yg gak lengkap ya source code nya..? itu method setImage() dari mana sih?
ada di class PanelGambar… di package form..
Mas koq error yaa ….
tampil error seperti ini …
Nov 16, 2014 1:04:46 AM arya.dao.impl.KaryawanDaoImpl save
SEVERE: null
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘foto’ at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3607)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
at arya.dao.impl.KaryawanDaoImpl.save(KaryawanDaoImpl.java:39)
at arya.form.FrameKaryawan.btnSimpanActionPerformed(FrameKaryawan.java:473)
at arya.form.FrameKaryawan.access$1500(FrameKaryawan.java:40)
at arya.form.FrameKaryawan$3.actionPerformed(FrameKaryawan.java:323)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Size daripada gambar yang ingin diinputkan terlalu besar.. Melebihi kapasitas kolom “foto” yang bertipe blob..
mas, itu maxsize gambar buat input ke BLOB berapa bytes ya?
bisa dilihat di situsnya mysql
http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html
yang bikin saya bingung, dibagian declaration variable ada
” private arya.form.PanelGambar panelGambar1; ” bagaimana cara mengaitkan
panelGambar1 dengan PanelGambar. Saya sudah bikin PanelGambar satu folder dengan Jframe lalu gimana biar PanelGambar bisa terhubung dengan panelGambar1
Tinggal drag aja dari project window ke frame yang ingin dipasang panel gambar… nanti akan langsung nempel
Mas Mau tanya dong drag gimana ya?
saya drag malah dia cuma geser geser tab gitu bukan masuk/nempel kayak yg mas bilang?
biasanya sih drag ke jframenya..
thanks ya boss. mau tanya lagi nih seputar error
saya kan bikin coding online shop
tapi muncul error, pas saya copy ke laptop temen saya , program saya lancar2 aja
cuman di laptop saya sajay yang gk error
ada solusi nggak ya?
Tergantung errornya apa dulu.. bisa saja library jar nya ada yang kurang.. tergantung errornya..
saya mencoba menampilkan icon di jlabel,, di laptop saya scriptnya error,
tetapi di laptop teman saya bisa jalan dengan lancar
berikut errornya:
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at javax.swing.ImageIcon.(ImageIcon.java:228)
at Shop.InsertBarang.jButton1ActionPerformed(InsertBarang.java:318)
at Shop.InsertBarang.access$1300(InsertBarang.java:14)
at Shop.InsertBarang$11.actionPerformed(InsertBarang.java:139)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Saya coba bantu.. saya rasa ada error pada saat load gambar, karena bisa saja gambar tersebut tidak ada pada lokasi yang dituju. Untuk tambahan referensi bisa cek di http://stackoverflow.com/questions/13151979/null-pointer-exception-when-an-imageicon-is-added-to-jbutton-in-netbeans
oya satu lagi sebagai tambahan bisa cek di javadoc mengenai getResource http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource%28java.lang.String%29
makasi banyak ya mas,,, udah work nie hahahaha
ya sama2..
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘foto’ at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4118)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
at arya.dao.impl.KaryawanDaoImpl.save(KaryawanDaoImpl.java:40)
at arya.form.FrameKaryawan.btnSimpanActionPerformed(FrameKaryawan.java:472)
at arya.form.FrameKaryawan.access$1500(FrameKaryawan.java:40)
at arya.form.FrameKaryawan$3.actionPerformed(FrameKaryawan.java:322)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
mas,itu errornya kenapa?dari kemarin saya otak atik di db,program nya msh ga bisa.thankz
karena size gambarnya terlalu besar, sehingga kolom foto tidak cukup menampung gambar tersebut.. untuk lebih jelasnya bisa dilihat di http://stackoverflow.com/questions/3503841/jpa-mysql-blob-returns-data-too-long
Mas mau tanya dong
punya saya pas dimasukin database null ngga ada isinya mas
ngga ada pemberitahuan apa apa
ngga merah merah sama sekali
kenapa ya mas
makasi sebelum nya
ada pesan errornya ?
sukseme bli atas sharingnya semoga bermanfaat
kang saya error di construttor datanya itu gmna ya ???
Boleh tau pesan errornya ?
Agu 01, 2015 11:46:23 PM app.tlk.view.FrameTrainer$1 valueChanged
SEVERE: null
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2328)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2797)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:802)
at java.io.ObjectInputStream.(ObjectInputStream.java:299)
at app.tlk.view.FrameTrainer$1.valueChanged(FrameTrainer.java:88)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:184)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:164)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:211)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:405)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:415)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:459)
at javax.swing.JTable.changeSelectionModel(JTable.java:2389)
at javax.swing.JTable.changeSelection(JTable.java:2458)
at javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(BasicTableUI.java:1115)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1038)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
at java.awt.Component.processMouseEvent(Component.java:6522)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4530)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Agu 01, 2015 11:46:24 PM app.tlk.view.FrameTrainer$1 valueChanged
SEVERE: null
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2328)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2797)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:802)
at java.io.ObjectInputStream.(ObjectInputStream.java:299)
at app.tlk.view.FrameTrainer$1.valueChanged(FrameTrainer.java:88)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:184)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:154)
at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(DefaultListSelectionModel.java:685)
at javax.swing.plaf.basic.BasicTableUI$Handler.setValueIsAdjusting(BasicTableUI.java:953)
at javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(BasicTableUI.java:1166)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Itu error knp ya bro? Bingung saya…. Mohon pencerahannya donk… Hehehehe
error itu terjadi pada saat ngapain ?
Mas aq coba error di panelgambar1
Ada fb atau bb mas???
Mohon bimbinganya…
Maklum newbe
Pesan Errornya apa ?
mas bukannya tipe data gambar pada database nya itu pakai mediumBlob ?
Sipp gan tutorialnya, sangat membantu 🙂
Thx gan
Mas mau tanya
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.util.logging.Level;
import java.util.logging.Logger;
itu nama librarynya apa? hehehe maaf saya pemula ini di java mas, soalnya library itu belum ada di komputer saya.
mohon dijawab ya mas, terima kasih 🙂
Itu semua library yang disediakan java. Bisa dilihat untuk awt dan logging. Mudah2an membantu
ini error pada saat saya mengeklik tombol simpan,, ini kenapa ya??
run:
10 Feb 16 12:13:12 arya.dao.impl.KaryawanDaoImpl save
SEVERE: null
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4231000 > 1048576). You can change this value on the server by setting the max_allowed_packet’ variable.
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3248)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1940)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2409)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2327)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2312)
at arya.dao.impl.KaryawanDaoImpl.save(KaryawanDaoImpl.java:39)
at arya.form.FrameKaryawan.btnSimpanActionPerformed(FrameKaryawan.java:471)
at arya.form.FrameKaryawan.access$1500(FrameKaryawan.java:40)
at arya.form.FrameKaryawan$3.actionPerformed(FrameKaryawan.java:321)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Maaf baru bisa reply, mungkin karena ukuran gambarnya terlalu besar
gan mau tanya ni,saya udah bikin upload gambar tapi gambarnya ga keluar ya,
Mas, Tolong Dibantu saya telah coba aplikasi yg mas buat menurut saya bagus tapi kok saat selesai di input dan foto jga sdh ready dimasukan saat menekan tombol “Simpan” Muncul Pesan Error
mohon bantu di analisis bug nya
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1263803 > 1048576). You can change this value on the server by setting the max_allowed_packet’ variable.
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3798)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2484)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
at arya.dao.impl.KaryawanDaoImpl.save(KaryawanDaoImpl.java:39)
at arya.form.FrameKaryawan.btnSimpanActionPerformed(FrameKaryawan.java:471)
at arya.form.FrameKaryawan.access$1500(FrameKaryawan.java:40)
at arya.form.FrameKaryawan$3.actionPerformed(FrameKaryawan.java:321)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
untuk ukuran gambar sdh = 45,6 KB (46.706 bytes)
Maaf baru bisa balas…
coba di tabel database, ukuran kolom gambarnya pake yg longblob..
gan gmn kalo errornya gni,,, butuh pencerahan 🙂
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at arya.dao.impl.KaryawanDaoImpl.save(KaryawanDaoImpl.java:37)
at arya.form.FrameKaryawan.btnSimpanActionPerformed(FrameKaryawan.java:471)
at arya.form.FrameKaryawan.access$1500(FrameKaryawan.java:40)
at arya.form.FrameKaryawan$3.actionPerformed(FrameKaryawan.java:321)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:720)
at java.awt.EventQueue$4.run(EventQueue.java:718)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Pas klik simpan eror ini knp ya?? mhon bantuannya 🙂
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at arya.dao.impl.KaryawanDaoImpl.save(KaryawanDaoImpl.java:37)
at arya.form.FrameKaryawan.btnSimpanActionPerformed(FrameKaryawan.java:471)
at arya.form.FrameKaryawan.access$1500(FrameKaryawan.java:40)
at arya.form.FrameKaryawan$3.actionPerformed(FrameKaryawan.java:321)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:720)
at java.awt.EventQueue$4.run(EventQueue.java:718)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
maaf baru bisa balas…Itu errorny null pointer exception.. class yang belum dibuat instancenya
coba di cek lagi apa sudah sesuai urutan pembuatannya
mas,gimana caranya gambar dari databases muncul didalam jtabelnya. bukan muncul di jpanel
mas,gimana cara gambarnya muncul ditabel?
maaf baru bisa balas.. klo supaya muncul ditabel brarti harus bikin lagi komponen supaya bisa menampilkan gambarnya..
itu masih blom sempurna mas
seharusnya kalo isinya nggk lengkap nggk bisa atau “Mohon Maaf Data Anda Belom Lengkap, Mohon Diisi Kembali”
bisa nggk gan di gituin..?
iya memang belum sempurna, karena concern nya cuma supaya bisa menyimpan gambar.
Terimakasih mas… akhirnya bisa running, walaupun sempat bingung di panelGambar1.setImage.
Ternyata panelGambar1 tersebut harus di drag dari class panelGambar.
Btw mohon izin mas, buat saya terapkan simpan dan tampil gambarnya di projek saya 😀
Thanks!
silahkam
gan mau tanya, kalau tipe datanya pake mediumblob, source codenya sama tidak?
mas
bisa kah saya minta file lengkap proyek ini?
trimaksih
thanks banget gan buat tutorialnya, aplikasinya udah saya download, tapi sayang ada sedikit kesalahan pada Resolve Project Problems saat add jar jcalendar, junit, junit_4 tidak dapat di resolve
thanks before