Saat kita membuat sebuah program terkadang kita ingin mengambil event pada sebuah object. Sekarang kita akan membahas event yang terdapat pada Grid OpenSwing. Karena pada OpenSwing Menggunakan Metode MVC [Model View Controoler], sehingga pada beberapa komponennya pun banyak yang menggunakan metode itu.
Termasuk pada Grid [Bukan Jtable] untuk mengolah sebuah grid kita harus menggunakan class Controller yang akan menghandle semua propses pada Grid tersebut. Sekarang kita akan coba melihat event – event apa saja yang terdapat dan dapat di handle oleh class GridController pada OpenSwing.
- LoadData
- InserRecord
- deleteRecords
- dll
Ada banyak event yang bisa di tangani termasuk event enter pda grid. Tetapi ternyata tidak da evnt KeyPress pada grid. saat kita mau mengambil eventKey pada grid ternyata tidak bisa. Nah jalan keluarnya adalah dengan menambahkan event tersebut pada Controller grid.
Berikut langkah – langkahnya :
- Download source Openswing di http://opswing.sourceforge.net
- Extrack File.
- Kemudian edit file Grid.java dan GridController.java
Dua file tersebut terletak pada package org.openswing.swing.table.client.
Edit Grid.java :
public void keyReleased(KeyEvent e) {
gridController.keyReleased(getSelectedRow(), Grid.this.model.getObjectForRow(getSelectedRow()),e);
if (Grid.this.grids.getCurrentNestedComponent() != null) {
if (Grid.this.grids.getCurrentNestedComponent() instanceof Grid
&& e instanceof KeyEvent
&& ((KeyEvent) e).getKeyCode() == e.VK_TAB) {
return;
}
Grid.this.grids.getCurrentNestedComponent().dispatchEvent(e);
// e.consume();
repaint();
return;
}
if (getMode() == Consts.READONLY) {
controlDown = e.isControlDown();
} else {
controlDown = false;
}
}
lihat script pada baris ke dua.
gridController.keyReleased(getSelectedRow(), Grid.this.model.getObjectForRow(getSelectedRow()),e);
pada event tersebut saya menambahkan tiga buah parameter pada event keyRelease
- Baris grid yang sedang aktif.
- Nilai berupa object data.
- keyEvent.
kemudian tambahkan method keyReleased pada GridController
public void keyReleased(int rowNumber, ValueObject persistentObject, java.awt.event.KeyEvent evt) {}
Sekarang tinggal clean and build agar bisa menjadi jar dan masukkan hasil kompilan ke project kamu dan coba munculkan event pada GridController kamu.
Sekian semoga membantu
Forum : http://forum.do-event.com/viewtopic.php?f=31&t=51