Cara Mendapatkan Nilai dari Frame atau Dialog di Java - Tutorial Java kali ini kita akan belajar bagaimana cara mendapatkan value atau nilai atau isi dari sebuah JFrame atau Form. Hal ini berguna saat teman-teman membuat program yang dimana dalam satu transaksi dapat mendapatkan beberapa value dari sebuah objek. Sebagai contoh dalam program penjualan. Pada program tersebut pasti penjual mencatat apa yang dibeli pembeli, dan apa yang dibeli pembeli lebih dari satu jenis. Saat barcode reader dalam kasir tidak berfungsi, kasir pasti akan menginputkan data barcode secara manual, setelah data ditemukan kasir akan memasukkan data tersebut.
Nah, tutorial ini hampir sama konsepnya dengan kasus tersebut. Jadi kita harus mendapatkan nilai dari daftar barang yang ada. Jadi kita tidak perlu mengingat kode barang yang ada.
Dalam program ini, kita akan membuat 2 buah Frame, yang mana satu Frame berisi beberapa JTextField, dan Frame lain berisi sebuah JTable. Ketika salah satu data pada baris JTable di-klik, maka nilai yang ada di JTable akan terisi di JTextField secara otomatis yang mana kedua Frame tersebut berbeda.
Ya, semoga apa yang saya jelaskan di atas sudah membuat gambaran kepada teman-teman tentang apa yang kita buat. Langsung saja kita ke langkah-langkahnya.
1. Buatlah sebuah database dengan MySQL
2. Buatlah sebuah tabel dengan nama 'barang' pada database tersebut dan isi dengan kolom (barang_id, barang_nama, barang_harga)
3. Berikut contoh isi tabel barang:
4. Buatlah sebuah JFrame seperti ini dan beri nama FrmAmbilBarang.java
5. Buat JFrame lagi, simpan dengan nama FrmDataBarang.java
6. Isi FrmDataBarang.java dengan JTable
====== coding untuk FrmAmbilBarang.java ======
7. Deklarasikan Variabel yang digunakan di bawah Class
8. Masukkan script ini pada Event action -> actionPerformed pada btnDaftarBarang
9. Tambah fungsi berikut ke dalam FrmAmbilBarang.java
====== coding untuk FrmDataBarang.java ======
10. Untuk di bawah package
11. Di bawah Class
12. Tambahkan Event Mouse -> mouseClicked pada tabel dan tambahkan kode berikut:
13. Panggil fungsi tampildata(); pada FrmDataBarang() dibawah "initComponents()"
Selesai, sekarang running pada FrmAmbilBarang.java
Kalau berhasil, tampilan running program akan terlihat seperti ini:
Kalau Frame FrmDataBarang.java mau diganti menjadi Dialog, ganti extends java-nya menjadi JDialog
Lalu 'close' FrmDataBarang.java dan buka kembali.
Bila terdapat error seperti ini, pilih 'Allow editing'.
Lalu ganti 'defaultCloseOperation' pada properties dari 'HIDE' menjadi 'DISPOSE'
Nah, itu dia cara mendapatkan value dari Frame lain, semoga bermanfaat untuk teman-teman.
Bagi yang masih kesusahan, saya sediakan source-codenya.
Silakan download disini -> [Server 1] [Server 2]
password: kangsunu
Keyword:
Nah, tutorial ini hampir sama konsepnya dengan kasus tersebut. Jadi kita harus mendapatkan nilai dari daftar barang yang ada. Jadi kita tidak perlu mengingat kode barang yang ada.
Dalam program ini, kita akan membuat 2 buah Frame, yang mana satu Frame berisi beberapa JTextField, dan Frame lain berisi sebuah JTable. Ketika salah satu data pada baris JTable di-klik, maka nilai yang ada di JTable akan terisi di JTextField secara otomatis yang mana kedua Frame tersebut berbeda.
Ya, semoga apa yang saya jelaskan di atas sudah membuat gambaran kepada teman-teman tentang apa yang kita buat. Langsung saja kita ke langkah-langkahnya.
1. Buatlah sebuah database dengan MySQL
2. Buatlah sebuah tabel dengan nama 'barang' pada database tersebut dan isi dengan kolom (barang_id, barang_nama, barang_harga)
3. Berikut contoh isi tabel barang:
4. Buatlah sebuah JFrame seperti ini dan beri nama FrmAmbilBarang.java
5. Buat JFrame lagi, simpan dengan nama FrmDataBarang.java
6. Isi FrmDataBarang.java dengan JTable
====== coding untuk FrmAmbilBarang.java ======
7. Deklarasikan Variabel yang digunakan di bawah Class
public String idBrg, namaBrg, hargaBrg; public String getIdBrg() { return idBrg; } public String getNamaBrg() { return namaBrg; } public String getHargaBrg() { return hargaBrg; }
8. Masukkan script ini pada Event action -> actionPerformed pada btnDaftarBarang
FrmDataBarang fDB = new FrmDataBarang(); fDB.fAB = this; fDB.setVisible(true); fDB.setResizable(false);
9. Tambah fungsi berikut ke dalam FrmAmbilBarang.java
public void itemTerpilih(){ FrmDataBarang fDB = new FrmDataBarang(); fDB.fAB = this; txtID.setText(idBrg); txtNama.setText(namaBrg); txtHarga.setText(hargaBrg); }
====== coding untuk FrmDataBarang.java ======
10. Untuk di bawah package
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel;
11. Di bawah Class
public Connection conn; public Statement stat; public FrmAmbilBarang fAB = null; public void koneksi() { try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java_nilai_dari_frame_lain", "root", ""); } catch (ClassNotFoundException | SQLException e) { JOptionPane.showMessageDialog(null, "Koneksi Gagal"); System.out.println(e.getMessage()); } } public final void tampildata() { DefaultTableModel tabelBarang = new DefaultTableModel(); tabelBarang.addColumn("ID BARANG"); tabelBarang.addColumn("NAMA BARANG"); tabelBarang.addColumn("HARGA"); try { koneksi(); String sql = "SELECT * FROM barang"; stat = conn.createStatement(); ResultSet rs = stat.executeQuery(sql); while (rs.next()) { tabelBarang.addRow(new Object[]{ rs.getString(1), rs.getString(2), rs.getString(3) }); } tblDataBarang.setModel(tabelBarang); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ada kesalahan" + e); } }
12. Tambahkan Event Mouse -> mouseClicked pada tabel dan tambahkan kode berikut:
int tabelBarang = tblDataBarang.getSelectedRow(); fAB.idBrg = tblDataBarang.getValueAt(tabelBarang, 0).toString(); fAB.namaBrg = tblDataBarang.getValueAt(tabelBarang, 1).toString(); fAB.hargaBrg = tblDataBarang.getValueAt(tabelBarang, 2).toString(); fAB.itemTerpilih(); this.dispose();
13. Panggil fungsi tampildata(); pada FrmDataBarang() dibawah "initComponents()"
public FrmDataBarang() { initComponents(); //<<-- JANGAN DIHAPUS tampildata(); }
Selesai, sekarang running pada FrmAmbilBarang.java
Kalau berhasil, tampilan running program akan terlihat seperti ini:
Kalau Frame FrmDataBarang.java mau diganti menjadi Dialog, ganti extends java-nya menjadi JDialog
Lalu 'close' FrmDataBarang.java dan buka kembali.
Bila terdapat error seperti ini, pilih 'Allow editing'.
Lalu ganti 'defaultCloseOperation' pada properties dari 'HIDE' menjadi 'DISPOSE'
Nah, itu dia cara mendapatkan value dari Frame lain, semoga bermanfaat untuk teman-teman.
Bagi yang masih kesusahan, saya sediakan source-codenya.
Silakan download disini -> [Server 1] [Server 2]
password: kangsunu
Keyword:
- Cara Mendapatkan Value dari JDialog Saat Tabel di-Klik
- Cara Memperoleh Nilai dari Frame Lain dengan JDialog
- Cara Mendapatkan Value dari Frame Lain yang Berada di Dalam JTable
- Memperoleh Nilai dari Tabel yang Berada di JDialog
- Bagaimana cara mendapatkan nilai yang ada di tabel pada frame lain?
- Mengganti JFrame menjadi JDialog
FrmDataBarang fDB = new FrmDataBarang();
ReplyDeletefDB.fAB = this; ( Maksud fAB disini apa ya gan ? gak ngeh pas yang disini malah eror dianya )
"fAB" itu cuma nama variabel untuk ngambil data dari frame Ambil Barang
DeleteKak kalo di setTExt nya ke jintetnalframe gimana ya?
ReplyDeleteBarusan aku coba bisa kak...
Deletekang, mau nanya. caranya mengakses variable name dari class lain gmana yah? jadi gini, kan saya punya jTabbedPane di class A, nah saya mau memanggil variable name dari jTabbedPane tersebut dari class B, kira-kira gmana caranya ya kang? mohon bantuannya, terimakasih
ReplyDeletedi-include-kan dulu mungkin mas class B-nya, terus dibuat public class-nya.
Deletekalo teman-teman yang lain ada yang tahu tolong bantuannya untuk menjawab pertanyaan mas ini, makasih :)
Kak saya mau nanya.. Kalo tombol button nya ada 2 dan masing2 ngambil data dari tabel yang berbeda bisa ga ya? Kalo bisa bgimana caranya kak makasih
ReplyDeletebisa saja mba, tinggal buat frame lagi seperti tutorial diatas
Deletetolong penjelasannya lagi tentang FDB dan FAB, saya masih ga ngerti, karena beda konsep dengan program yg saya buat.
ReplyDeletetolong dijawab kang, saya butuh untuk tugas
fABnya ga jelas dari mmana emang
ReplyDeletegan.. cara narik data antara tabel gimna ya??
ReplyDeletemisal data tabel a kita mau tarik ke tabel b? mohon bantuannya
bagaimana coding button cari kalau mau ditambahkan button cari di frame tabel ?
ReplyDeleteKang sama mau masukin ini di mvc saya, tapi kok bingung ya mecah nya satu2...mohon bantuannya
ReplyDeleteTerimakasih
Thanks berhasil gan...
ReplyDeletepermisi kangsunu, boleh nanya ada penjelasan code nya tidak,?ga paham bagian code mana yang bertugas mindahin value nya ke form lain.
ReplyDeletebtw method tampildata() yang mana ya ? kok saya gak nemu
ReplyDeleteitu TabelBarang sama tblDataBarang beda nya apa??
ReplyDeletemin cara ngambil data dari textbox class a, kita masukan ke combo box class b, syntax gimana itu?
ReplyDeletemohon min pencerehannya
ini ada tugas soalnya
Work, makasih bang
ReplyDeleteterimakasih ya mas, jasa mas sudah membantu saya dalam mengerjakan tugas akhir
ReplyDelete