Menggunakan kelas Java JTableHeader untuk mengelola header tabel
Menggunakan Kelas Java JTableHeader
Kelas javax.swing.table.JTableHeader adalah turunan kelas JComponent. JTableHeader adalah komponen grafis yang berfungsi untuk pengelolaan header table. JTableHeader mempunyai dua buah konstruktor dan beberapa metoda. Selain menggunakan konstruktor, obyek dari kelas JTableHeader juga dapat dihasilkan melalui metoda getTableHeader dari kelas JTable.

Kolom tabel dapat diposisikan kembali dengan menekan, menahan dan menggerakkan (dragging) column header ke posisi baru yang diinginkan. Untuk mencegah agar kolom tabel tidak dapat dipindah ke posisi lain, Anda dapat memberi nilai boolean false untuk argumen parameter metoda setReorderingAllowed. Anda juga dapat memperindah header dengan memberi warna background, foreground, merubah jenis font dan lain sebagainya.

Program berikut ini mendemonstrasikan bagaimana memberi tampilan berbeda pada table header. Background akan diberi warna kuning, foreground biru, jenis font tahoma, cetak tebal dan mencegah agar kolom tabel tidak dapat dipindah ke posisi lain. Berikut ini adalah kode program dan hasil eksekusinya:

 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
// Nama file : TabelPenjualanNotebook4.java
// Merubah tampilan table header

// Mengimpor kelas
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

// Deklarasi kelas
public class TabelPenjualanNotebook4 extends JFrame {

   // Membuat nama kolom tabel
   private String[] kolomTabel =
      {"Tipe", "Warna", "Sistem Operasi", "Jumlah Terjual"};

   // Membuat nama kolom tabel
   private Object[][] dataTabel = {
      {"Satellite L645-1043XB", "Brown", new Boolean(true), new Integer(7)},
      {"Satellite C640-1010U", "Black", new Boolean(false), new Integer(4)},
      {"Satellite A665-10033D", "Black", new Boolean(true), new Integer(2)},
      {"Qosmio X500-D832", "Black", new Boolean(true), new Integer(4)},
      {"Portege T210-1014UR", "Red", new Boolean(true), new Integer(6)},
      {"Libretto W100-1002U", "Black", new Boolean(true), new Integer(1)}
   };

   // Membuat table model
   private DefaultTableModel tModel = new DefaultTableModel(dataTabel, 
      kolomTabel);

   // Membuat tabel
   private JTable tabel = new JTable(tModel);

   // Membuat obyek font
   private Font font = new Font("Tahoma", Font.BOLD, 12);

   // Konstruktor tanpa argumen
   public TabelPenjualanNotebook4() {

      // Menginisialisasi tabel
      tabel.setSelectionBackground(Color.CYAN);
      tabel.setSelectionForeground(Color.RED);
      tabel.setRowSelectionAllowed(true);
      tabel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

      // Mendekorasi table header
      JTableHeader header = tabel.getTableHeader();
      header.setReorderingAllowed(false);
      header.setFont(font);
      header.setBackground(Color.YELLOW);
      header.setForeground(Color.BLUE);

      // Meletakkan tabel ke frame
      getContentPane().add(new JScrollPane(tabel), BorderLayout.CENTER);
   }

   // Metoda main
   public static void main(String[] args) {
      TabelPenjualanNotebook4 frame = new TabelPenjualanNotebook4();
      frame.setTitle("Kelas TabelPenjualanNotebook4");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(440, 170);
      frame.setVisible(true);
   }
}

Menggunakan kelas JTableHeader di Java

Pernyataan baris nomor 47 – 51 digunakan untuk memperindah tampilan table header. Metode getTableHeader dari kelas JTable digunakan untuk menghasilkan obyek kelas JTableHeader. Acuan ke kelas ini kemudian disimpan di variabel header (pernyataan baris nomor 47). Untuk mencegah agar kolom tabel tidak dapat dirubah posisinya, Anda menggunakan metoda setReorderingAllowed dari kelas JTableHeader dan memberi nilai boolean false untuk argumen parameter metoda tersebut.

Tiga metoda lain yaitu setFont, setBackground dan setForeground adalah metoda yang diwarisi dari kelas JComponent. Karena JTableHeader merupakan kelas turunan dari Kelas JComponent. JTableHeader juga mewarisi semua data field dan metoda yang dimiliki oleh parent class tersebut. Anda dapat menggunakan ketiga metoda warisan tersebut untuk memberi warna background, foreground dan menentukan jenis font yang digunakan table header.

SILAHKAN BAGIKAN ARTIKEL INI BILA BERMANFAAT
Pin It