BLANTERORBITv102

    Cara Menginputkan Data Dari JTextField Ke Dalam JTable Di Java Netbeans

    Kamis, 23 Maret 2017

    Pembukaan

    Setelah sebelumnya kita mempelajari cara membuat beberapa komponen di java, dan kita anggap pembaca telah paham setiap masing-masing fungsinya. Dalam hal ini kita akan membuat aplikasi sederhana yang berfungsi untuk merekam data masukan dari jtextfield ke dalam jtable di java. Aplikasi ini tidak menggunakan database sehingga setiap aplikasi di jalankan atau di tutup, data yang direkam akan terhapus secara otomatis.

    Pembahasan

    Adapun komponen swing yang akan digunakan antara lain adalah JFrame, JPanel, JLabel, JTextField, dan JTable. Berikut daftar komponen yang akan di gunakan sesuai dengan penentuan variabel masing-masing komponen.

    KomponenTextVariableFungsi
    JFrame JTable_2 - Merupakan form utama dari aplikasi
    JFrame JTable_2 - Merupakan form utama dari aplikasi
    JPanel - jPanel1 Merupakan panel untuk meletakan/ menyusun semua komponen
    JLabel Memasukan Data Pada TextField jLabel1 Text Judul
    JLabel Tanpa Database jLabel2 Text Judul
    JLabel Tambah btn_tambah Tombol untuk menambah/ menginputkan data pada textfield ke dalam table
    JLabel Bersihkan Data btn_clear Tombol untuk menghapus/ reset data pada table
    JTextField - txt_nama,txt_berat,txt_tinggi Tempat memasukan data
    JTable - tabelData Tempat menampilkan data yang telah di proses
    Desain interface sedemikian rupa sesuai dengan yang anda inginkan, sebagai contoh desain interface saya seperti gambar dibawah.
    Cara Menginputkan Data Dari JTextField Ke Dalam JTable Di Java Netbeans
    Gambar 1

    Kemudian pada masing-masing tombol (Tambah dan Bersihkan Data) kita beri event yaitu mouseClicked. Sehingga dalam source code nya akan seperti gambar berikut.
    Cara Menginputkan Data Dari JTextField Ke Dalam JTable Di Java Netbeans
    Gambar 2
    Kembali pada bagian user interface, klik kanan pada tabel dan pilih Costumize Code. Perhatikan pada bagian kiri terdapat dua combobox dengan pilihan default code, pada combobox kedua silahkan ubah menjadi custom property. Lalu samakan kode pada gambar dibawah dengan kode yang baru.
    Cara Menginputkan Data Dari JTextField Ke Dalam JTable Di Java Netbeans
    Gambar 3

    tabelData.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
        },
        new String [] {
            "Nama", "Berat", "Tinggi"
        }
    ));
    Kemudian klik tombol OK untuk menyimpan perubahan yang terjadi. Selanjutnya kembali pada bagian source tepat pada action perform masing-masing tomobol. Petama adalah membuat action untuk tombol Tambah, silahkan ketikan kode program dibawah pada bagian block btn_tambahMouseClicked.
        private void btn_tambahMouseClicked(java.awt.event.MouseEvent evt) {                                        
                DefaultTableModel dataModel = (DefaultTableModel) tabelData.getModel();
                List list = new ArrayList<>();
                tabelData.setAutoCreateColumnsFromModel(true);
                list.add(txt_nama.getText());
                list.add(txt_berat.getText());
                list.add(txt_tinggi.getText());
                dataModel.addRow(list.toArray());
        }  
    DefaultTableModel adalah class yang digunakan untuk membuat permodelan pada tabel, seperti menambah kolom ataupun baris. Pada baris kedua terdapat List yang biasa kita gunakan untuk membuat daftar, namun kali ini daftar(list) disimpan pada array. Pada baris terakhir adalah fungsi menambah data yang terdapat pada list ke dalam baris di table. Sehingga kalau di jalankan akan seperti gambar berikut.
    Cara Menginputkan Data Dari JTextField Ke Dalam JTable Di Java Netbeans
    Gambar 4

    Terakhir adalah membuat action pada tombol Bersihkan Data, silahkan ketikan kode program dibawah pada block btn_clearMouseClicked.
        private void btn_clearMouseClicked(java.awt.event.MouseEvent evt) {                                       
                DefaultTableModel dataModel = (DefaultTableModel) tabelData.getModel();    
                if (tabelData.getRowCount() > 0) {
                    for (int i = tabelData.getRowCount() - 1; i > -1; i--) {
                        dataModel.removeRow(i);
                    }
                }
        }  
    Pada kondisi if , data di dalam tabel di hitung dengan fungsi getRowCount. Jika hasil count lebih besar maka akan dilakukan proses penghapusan data dengan fungsi removeRow.

    Penutup

    Dari seluruh kode program yang dibuat, hasil akhir nya adalah seperti gambar berikut.
    Cara Menginputkan Data Dari JTextField Ke Dalam JTable Di Java Netbeans
    Gambar 5

    Dimana setiap data yang di input akan menambah di dalam tabel secara otomatis, hal ini juga sangat berguna pada pembuatan table dinamis aplikasi kasir.

    Terimakasih sudah berkesempatan untuk menimba ilmu dari blog JSC, semoga ilmu yang di share dapat bermanfaat. Jika ada pertanyaan mengenai ilmu yang terkait ataupun tidak, mari kita berdiskusi di dalam kolom komentar ini.

    Keep Learning and Keep Sharing

    1. Permisis bang, yang list itu import java nya pake yang .util atau yang .awt . masih error arraylistnya apa pakai .util juga ?

      BalasHapus
      Balasan
      1. yabg di import ini

        import java.util.ArrayList;
        import java.util.List;
        import javax.swing.table.DefaultTableModel;

        Hapus
    2. auto fit berarti, bisa coba ini:
      stackoverflow.com/questions/13013989/how-to-adjust-jtable-columns-to-fit-the-longest-content-in-column-cells

      tapi saya blm bisa bantu, lagi jauh dengan java .. hehe

      BalasHapus
    3. dataModel.addRow(list.toArray());
      yg itu di netbeans saya addrow nya gk ditemukan symbol kaya gitu

      BalasHapus
    4. om kalo input data langsung di tabelnya gimana ya? kbanyakan menggunakan textfield,,

      BalasHapus
      Balasan
      1. Bisa aja gan, tapi untuk sekarang lagi jarang ngetutor.

        Hapus
    5. gan klu untuk mnampilkan data yg d input trus pas d run output x kluar yg dri input td sja d jtble gmana y gan..?

      Mhon pncerahan x...

      BalasHapus
      Balasan
      1. Maksudnya datanya tidak dari form, melainkan dari array atau list. Sama saja caranya, tinggal ganti saja bagian input menjadi list yang sudah berisi data.

        Hapus