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.
Komponen | Text | Variable | Fungsi |
---|---|---|---|
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.
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.
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.
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.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.
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.
Permisis bang, yang list itu import java nya pake yang .util atau yang .awt . masih error arraylistnya apa pakai .util juga ?
BalasHapusyabg di import ini
Hapusimport java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;
auto fit berarti, bisa coba ini:
BalasHapusstackoverflow.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
dataModel.addRow(list.toArray());
BalasHapusyg itu di netbeans saya addrow nya gk ditemukan symbol kaya gitu
Sudah di import defaulttablemodel nya?
Hapusom kalo input data langsung di tabelnya gimana ya? kbanyakan menggunakan textfield,,
BalasHapusBisa aja gan, tapi untuk sekarang lagi jarang ngetutor.
Hapusgan klu untuk mnampilkan data yg d input trus pas d run output x kluar yg dri input td sja d jtble gmana y gan..?
BalasHapusMhon pncerahan x...
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