Cara Mendapatkan Value dari Frame Lain di Java
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 mana dalam satu proses dibolehkan memiliki beberapa value dari sebuah objek. Salah satu contohnya yaitu proses yang terdapat dalam program penjualan.
Pada program penjualan, pasti seorang kasir mencatat apa yang dibeli oleh pembeli. Selain itu, item yang dibeli oleh pembeli kemungkinan terdapat 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 ke dalam daftar belanja pembeli.
Tutorial ini hampir sama konsepnya dengan kasus tersebut. Jadi kita harus mendapatkan nilai dari daftar barang yang ada ke dalam daftar belanja yang dibeli. 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 (dipilih), 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 pembuatannya.
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
Koding 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 btnDaftarBarangFrmDataBarang fDB = new FrmDataBarang();
fDB.fAB = this;
fDB.setVisible(true);
fDB.setResizable(false);
9. Tambah fungsi berikut ke dalam FrmAmbilBarang.javapublic void itemTerpilih(){
FrmDataBarang fDB = new FrmDataBarang();
fDB.fAB = this;
txtID.setText(idBrg);
txtNama.setText(namaBrg);
txtHarga.setText(hargaBrg);
}
Koding untuk FrmDataBarang.java
10. Untuk di bawah package FrmDataBarang.java
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 Classpublic 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 program yang dijalankan 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();
fDB.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
Kak kalo di setTExt nya ke jintetnalframe gimana ya?
Barusan aku coba bisa kak...
kang, 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
di-include-kan dulu mungkin mas class B-nya, terus dibuat public class-nya.
kalo 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
bisa saja mba, tinggal buat frame lagi seperti tutorial diatas
tolong penjelasannya lagi tentang FDB dan FAB, saya masih ga ngerti, karena beda konsep dengan program yg saya buat.
tolong dijawab kang, saya butuh untuk tugas
fABnya ga jelas dari mmana emang
gan.. cara narik data antara tabel gimna ya??
misal data tabel a kita mau tarik ke tabel b? mohon bantuannya
bagaimana coding button cari kalau mau ditambahkan button cari di frame tabel ?
Kang sama mau masukin ini di mvc saya, tapi kok bingung ya mecah nya satu2...mohon bantuannya
Terimakasih
Thanks berhasil gan...
permisi kangsunu, boleh nanya ada penjelasan code nya tidak,?ga paham bagian code mana yang bertugas mindahin value nya ke form lain.
btw method tampildata() yang mana ya ? kok saya gak nemu
itu TabelBarang sama tblDataBarang beda nya apa??
min cara ngambil data dari textbox class a, kita masukan ke combo box class b, syntax gimana itu?
mohon min pencerehannya
ini ada tugas soalnya
Work, makasih bang
terimakasih ya mas, jasa mas sudah membantu saya dalam mengerjakan tugas akhir
Mantal gan