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:

Mengambil Data dari Frame Lain di Java dengan Database

4. Buatlah sebuah JFrame seperti ini dan beri nama FrmAmbilBarang.java
Mengambil Data dari Frame Lain di Java

5. Buat JFrame lagi, simpan dengan nama FrmDataBarang.java
6. Isi FrmDataBarang.java dengan JTable
Membuat JDialog yang Berisi Data Barang

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 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);
}


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 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 program yang dijalankan terlihat seperti ini:
Mengambil Data dari Frame Lain di Java
Mengambil Data dari Frame Lain di Java

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'.
Cara Mengganti JFrame menjadi JDialog

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
*Diperbaharui pada, 13 Mei 2022
Next Post Previous Post
20 Comments
  • Unknown
    Unknown 22 Mei 2016 pukul 12.55

    FrmDataBarang fDB = new FrmDataBarang();
    fDB.fAB = this; ( Maksud fAB disini apa ya gan ? gak ngeh pas yang disini malah eror dianya )


    • Sunu Aziz Rahayu
      Sunu Aziz Rahayu 23 Mei 2016 pukul 20.26

      "fAB" itu cuma nama variabel untuk ngambil data dari frame Ambil Barang

  • Unknown
    Unknown 24 Juni 2016 pukul 05.44

    Kak kalo di setTExt nya ke jintetnalframe gimana ya?

    • Unknown
      Unknown 9 Juli 2017 pukul 03.17

      Barusan aku coba bisa kak...

  • Unknown
    Unknown 28 Juni 2016 pukul 08.20

    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

    • Sunu Aziz Rahayu
      Sunu Aziz Rahayu 28 Juni 2016 pukul 18.53

      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 :)

  • Unknown
    Unknown 7 November 2016 pukul 18.48

    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

    • Sunu Aziz Rahayu
      Sunu Aziz Rahayu 9 November 2016 pukul 07.27

      bisa saja mba, tinggal buat frame lagi seperti tutorial diatas

  • Unknown
    Unknown 1 Januari 2017 pukul 21.01

    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

  • Unknown
    Unknown 1 Mei 2017 pukul 23.39

    fABnya ga jelas dari mmana emang

  • Unknown
    Unknown 22 Mei 2017 pukul 19.04

    gan.. cara narik data antara tabel gimna ya??
    misal data tabel a kita mau tarik ke tabel b? mohon bantuannya

  • Unknown
    Unknown 2 Juni 2017 pukul 00.22

    bagaimana coding button cari kalau mau ditambahkan button cari di frame tabel ?

  • Unknown
    Unknown 8 Juli 2017 pukul 21.32

    Kang sama mau masukin ini di mvc saya, tapi kok bingung ya mecah nya satu2...mohon bantuannya
    Terimakasih

  • Unknown
    Unknown 9 Juli 2017 pukul 03.18

    Thanks berhasil gan...

  • tovidd
    tovidd 6 November 2017 pukul 18.57

    permisi kangsunu, boleh nanya ada penjelasan code nya tidak,?ga paham bagian code mana yang bertugas mindahin value nya ke form lain.

  • Unknown
    Unknown 13 Desember 2017 pukul 21.50

    btw method tampildata() yang mana ya ? kok saya gak nemu

  • Unknown
    Unknown 28 Mei 2018 pukul 14.55

    itu TabelBarang sama tblDataBarang beda nya apa??

  • Unknown
    Unknown 11 November 2019 pukul 04.20

    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

  • Unknown
    Unknown 9 Juli 2020 pukul 13.58

    Work, makasih bang

  • Unknown
    Unknown 6 Agustus 2020 pukul 13.45

    terimakasih ya mas, jasa mas sudah membantu saya dalam mengerjakan tugas akhir

Add Comment
comment url