Menggunakan custom editor pada tabel program Java
Menggunakan Custom Editor Pada Table Program Java
Selain menampilkan predefined editor berupa obyek dari kelas JTextField atau JCheckBox, Anda juga dapat membuat custom editor untuk mengedit nilai di sel tabel dengan bantuan obyek dari kelas JCheckBox, JComboBox atau JTextField. Java sendiri telah menyediakan kelas DefaultCellEditor yang merupakan kelas turunan dari kelas abstrak AbstractCellEditor dan mengimplementasikan interface TableCellEditor untuk membuat custom editor.

Berikut ini adalah tabel kontruktor kelas DefaultCellEditor yang mempunyai kaitan dengan obyek dari kelas JCheckBox, JComboBox dan JTextField.

Tabel Konstruktor Kelas DefaultCellEditor

Konstruktor Keterangan
DefaultCellEditor(JCheckBox checkBox) Mengkonstruksi obyek DefaultCellEditor yang menggunakan obyek check box.
DefaultCellEditor(JComboBox comboBox) Mengkonstruksi obyek DefaultCellEditor yang menggunakan obyek combo box.
DefaultCellEditor(JTextField textField) Mengkonstruksi obyek DefaultCellEditor yang menggunakan obyek text field.

Untuk menggunakan custom editor, Anda perlu membuat obyek menggunakan salah satu dari ketiga kelas tersebut dan kemudian menjadikan obyek tersebut sebagai argumen parameter konstruktor dari kelas DefaultCellEditor.

Custom editor akan ditampilkan di sel kolom tabel dengan memastikan terlebih dulu kolom individu mana yang memakainya dan kemudian menggunakan metoda setCellEditor dengan argumen obyek dari kelas DefaultCellEditor.

Anda dapat mempelajari secara khusus mengenai predefined editor untuk sel tabel dari kelas JTable di artikel Mengenal Renderer Dan Editor Tabel Di Program Java

Berikut ini adalah contoh program Java menggunakan kelas JComboBox sebagai editor untuk kolom Tipe di tabel penjualan notebook. Masing- masing tipe notebook memiliki lima macam warna yaitu merah, hitam, coklat, abu-abu dan putih. Obyek combo box dari kelas JComboBox akan ditampilkan ketika sel Tabel di kolom Tipe diklik. Melalui combo box, Anda dapat merubah tipe notebook.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Nama file : TabelPenjualanNotebook6.java
// Membuat editor dari kelas JComboBox
 
// Mengimpor kelas
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
 
// Deklarasi kelas
public class TabelPenjualanNotebook6 extends JFrame {
 
  // Membuat nama kolom tabel
  String[] kolomTabel =
     {"Tipe", "Warna", "Sistem Operasi", "Jumlah Terjual"};
 
  // Membuat data tabel
  Object[][] dataTabel = {
     {"Satellite L630-1031U", "Black", new Boolean(false), new Integer(3)},
     {"Satellite L645-1043XB", "Brown", new Boolean(true), new Integer(7)},
     {"Satellite L645-1078X", "Gray", new Boolean(false), new Integer(5)},
     {"Satellite L645-1042XR", "Red", new Boolean(true), new Integer(4)},
  };
 
  // Membuat model tabel
  private ModelTabelPenjualanNotebook model =
     new ModelTabelPenjualanNotebook(dataTabel, kolomTabel);
 
  // Membuat tabel
  private JTable tabel = new JTable(model);
 
  // Membuat obyek font
  private Font font = new Font("Tahoma", Font.BOLD, 12);
 
  // Konstruktor tanpa argumen
  public TabelPenjualanNotebook6() {
 
     // Mengatur tinggi baris tabel
     tabel.setRowHeight(26);
 
     // Mendekorasi table header
     JTableHeader header = tabel.getTableHeader();
     header.setReorderingAllowed(false);
     header.setFont(font);
 
     // Membuat combo box untuk kolom tipe
     JComboBox comboBoxTipe = new JComboBox();
     comboBoxTipe.addItem("Satellite L630-1031U");
     comboBoxTipe.addItem("Satellite L645-1043XB");
     comboBoxTipe.addItem("Satellite L645-1078X");
     comboBoxTipe.addItem("Satellite L645-1042XR");
 
     // Mengatur combo box sebagai editor kolom tipe
     TableColumn kolomTipe = tabel.getColumn("Tipe");
     kolomTipe.setCellEditor(new DefaultCellEditor(comboBoxTipe));
 
     getContentPane().add(new JScrollPane(tabel), BorderLayout.CENTER);
  }
 
  // Metoda main
  public static void main(String[] args) {
     TabelPenjualanNotebook6 frame = new TabelPenjualanNotebook6();
     frame.setTitle("Kelas TabelPenjualanNotebook6");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setSize(400, 150);
     frame.setVisible(true);
  }
}

Menggunakan custom editor untuk sel tabel di Java

Baris nomor 46 adalah pernyataan untuk mengkonstruksi obyek combo box dan kemudian memberi variabel comboBoxTipe acuan ke obyek tersebut. Baris nomor 47 - 50 adalah pernyataan untuk menambahkan beberapa item ke obyek combo box. Pernyataan baris nomor 53 – 54 digunakan untuk mengatur obyek combo box sebagai editor untuk kolom Tipe.

SILAHKAN BAGIKAN ARTIKEL INI BILA BERMANFAAT
Pin It