Artikel sebelumnya “Membangun Aplikasi CRUD Java Swing Menggunakan Konsep Model-View-Controller Ruby on Rails” sudah selesai. Namun ada beberapa masalah yang seperti dituliskan pada bagian akhir artikel sebelumnya itu, yaitu :
- Harusnya saat di klik INSERT, setelah data sukses dimasukkan ke database dan tabel, harusnya data di form jadi clear.
- Harusnya saat baris tabel terseleksi, data langsung ada di form, jadi kalo mau Update gampang π
Jadi dari sini diperlukan sebuah aksi RESET ya itu aksi yang menghapuskan seluruh text form sehingga kosong, dan juga aksi SELECT ROW, yang menampilkan data baris tabel yang terseleksi ke form. Dari sini perlu kita tambahkan 2 buah aksi dalam Controller-nya, yaitu aksi reset() dan aksi selectRow() :
public void reset(){ view.getTextFirstName().setText(null); view.getTextLastName().setText(null); } public void selectRow() { // dapatkan baris yang terseleksi int index = view.getTablePerson().getSelectedRow(); // jika ada yang terseleksi if (index != -1) { // ambil data person dari tablemodel Person person = view.getTableModelPerson().select(index); // tampilkan di form view.getTextFirstName().setText(person.getFirstName()); view.getTextLastName().setText(person.getLastName()); } }
Dan selain itu kita perlu mengubah aksi tombol buttonInsert menjadi :
private void buttonInsertActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: controller.insert(); controller.reset(); }
Dan juga perlu menambahkan aksi saat tabel terseleksi, sehingga kita harus mengubah konstruktor PersonView menjadi seperti dibawah ini :
public class PersonView extends javax.swing.JFrame {
private TableModelPerson tableModelPerson;
private PersonController controller;
/** Creates new form PersonView */
public PersonView() {
initComponents();
tableModelPerson = new TableModelPerson();
tablePerson.setModel(tableModelPerson);
controller = new PersonController(this);
controller.select();
tablePerson.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
controller.selectRow();
}
});
}
Dan sekarang selesai, tinggal kita jalankan aplikasinya π
Download SourceCode
Silahkan download sourcecodenya –> disini <–