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); } } |

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.