Banner Java

Mengenal Kelas JTableHeader Dan Penggunaannya Di Pemrograman Java

Kelas javax.swing.table.JTableHeader adalah turunan dari 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 sebenarnya dapat diposisikan kembali dengan cara 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:

// 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 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 43 – 47 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 43). 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.

Menggunakan kelas JTableHeader

Baca artikel terkait lainnya:

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.