Feb 122010
 

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.

  1. LoadData
  2. InserRecord
  3. deleteRecords
  4. 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 :

  1. Download source Openswing di http://opswing.sourceforge.net
  2. Extrack File.
  3. 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

  1. Baris grid yang sedang aktif.
  2. Nilai berupa object data.
  3. 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

Facebook Comments

  One Response to “Modifikasi OpenSwing.”

  1. Interesting article. Were did you got all the information from… 🙂

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)