Banner Java

Contoh Program Java: Menggunakan Kelas JTable

Di artikel Mengenal Kelas JTable Di Pemrograman Java, Anda diperkenalkan pada materi Java tentang kelas JTable yang meliputi konstruktor, metoda dan properti (data filed) yang dimiliki. Di artikel kali ini, Anda diberikan contoh program Java sederhana yang menampilkan data di tabel serta penggunaan beberapa data filed dari kelas JTable. Data tabel merupakan catatan penjualan notebook Toshiba oleh sebuah toko komputer. Data tabel meliputi tipe notebook, warna, sudah atau belum terinstalnya sistem operasi (OS) dan jumlah yang terjual. Berikut ini adalah kode program dan hasil eksekusinya:

// Nama file : TabelPenjualanNotebook.java
// Membuat tabel sederhana menggunakan kelas JTable

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

// Deklarasi kelas
public class TabelPenjualanNotebook 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(true), new Integer(5)},
     {"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 tabel
   JTable tabel = new JTable(dataTabel, kolomTabel);

   // Membuat obyek checkbox
   JCheckBox checkBoxGrid = new JCheckBox("Tampilkan Grid", true);

   // Membuat obyek combo box model
   DefaultComboBoxModel comboBoxModel = new DefaultComboBoxModel();

   // Membuat obyek combo box
   JComboBox comboBox = new JComboBox(comboBoxModel);

   // Membuat list cell renderer
   ButtonLabelRenderer renderer = new ButtonLabelRenderer();

   // Konstruktor tanpa argumen
   public TabelPenjualanNotebook() {

      comboBoxModel.addElement(new Object[] {Color.BLACK, "Black Color"});
      comboBoxModel.addElement(new Object[] {Color.RED, "Red Color"});
      comboBoxModel.addElement(new Object[] {Color.MAGENTA, "Magenta Color"});
      comboBoxModel.addElement(new Object[] {Color.BLUE, "Blue Color"});
      comboBoxModel.addElement(new Object[] {Color.ORANGE, "Orange Color"});

      comboBox.setRenderer(renderer);
      comboBox.setMaximumRowCount(3);

      // Menginisialisasi tabel
      tabel.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
      tabel.setGridColor(Color.BLACK);
      tabel.setSelectionBackground(Color.PINK);
      tabel.setSelectionForeground(Color.BLUE);

      // Menambahkan check box dan combo box di panel
      JPanel panel = new JPanel();
      panel.add(checkBoxGrid);
      panel.add(comboBox);

      getContentPane().add(new JScrollPane(tabel), BorderLayout.CENTER);
      getContentPane().add(panel, BorderLayout.PAGE_END);

      // Penanganan event check box
      checkBoxGrid.addActionListener(
         new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
               tabel.setShowGrid(checkBoxGrid.isSelected());
            }
         }
      );

      // Penanganan event combo box
      comboBox.addActionListener(
         new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
               Object[] duaObjek = (Object[])(comboBox.getSelectedItem());
               tabel.setGridColor((Color)duaObjek[0]);
            }
         }
      );
   }

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

Tabel penjualan notebook di atas dibuat menggunakan konstruktor yang mempunyai dua parameter. Parameter pertama merupakan larik obyek berdimensi dua yang digunakan sebagai data yang akan ditampilkan di tabel dan parameter kedua adalah larik string berdimensi satu yang digunakan sebagai nama kolom tabel. Tabel kemudian diinisialisasi (diawali) dengan mengatur beberapa properti kelas JTable (baris nomor 56 – 59) seperti mode perubahan ukuran kolom (autoResizeMode), warna grid (gridColor), warna latar belakang saat baris tabel dipilih (selectionBackground) dan warna teks saat baris tabel dipilih (selectionForeground). Pengaturan beberapa properti (data field) tersebut menggunakan metoda setAutoResizeMode, setGridColor, setSelectionBackground dan setSelectionForeground.

Properti autoResizeMode digunakan untuk menentukan bagaimana perubahan ukuran sebuah kolom di tabel akan berpengarus pada kolom yang lain. Anda dapat menggunakan salah satu dari lima konstanta bernilai integer yang tersedia. Berikut ini adalah daftar konstanta yang dapat digunakan sebagai salah satu argumen parameter metoda setAutoResizeMode kelas JTable:

Konstanta Keterangan
AUTO_RESIZE_OFF Merubah lebar sebuah kolom tabel tidak akan mempengaruhi lebar kolom yang lain.
AUTO_RESIZE_LAST_COLUMN Merubah lebar sebuah kolom tabel akan mempengaruhi lebar kolom terakhir.
AUTO_RESIZE_SUBSEQUENT_COLUMN Merubah lebar sebuah kolom tabel akan mempengaruhi lebar semua kolom yang berikutnya.
AUTO_RESIZE_NEXT_COLUMN Merubah lebar sebuah kolom tabel akan mempengaruhi lebar sebuah kolom yang berikutnya.
AUTO_RESIZE_ALL_COLUMN Merubah lebar sebuah kolom tabel akan mempengaruhi lebar semua kolom.

Properti gridColor dengan metoda setGridColor digunakan untuk menginisialisasi warna grid tabel dengan hitam untuk menyesuaikan warna yang ditampilkan oleh obyek combo box di indek 0. Apabila warna grid diinisialisasi dengan warna selain hitam, maka program akan tampak membingungkan karena warna grid tabel tidak sesuai dengan warna yang muncul di obyek combo box. Properti selectionBackground dan selectionForeground digunakan untuk mengatur warna latar belakang dan warna teks ketika salah satu baris tabel dipilih atau disorot. Tabel diinisialisi dengan warna merah muda (pink) untuk background dan warna biru (blue) untuk foreground.

Baris nomor 32 adalah pernyataan untuk membuat obyek check box. Karena tabel ditampilkan dengan grid saat pertama kali program dijalankan, maka obyek check box harus juga dalam posisi tercentang. Anda dapat memberikan argumen boolean true sebagai nilai parameter kedua dari konstruktor kelas JCheckBox saat obyek tersebut dikonstruksi (baris nomor 32). Pernyataan lain di kode program tersebut adalah pembuatan obyek combo box dengan elemen berupa obyek grafis sebagaimana yang sudah dijelaskan di pembahasan kelas JList dan JComboBox.

Program di atas hanya menangani satu jenis event yaitu ActionEvent (baca artikel Penanganan ActionEvent Di Java (actionPerformed)) yang dihasilkan oleh dua komponen berbeda. ActionEvent pertama terjadi di obyek check box dari kelas JCheckBox. Bila obyek check box diberi tanda centang, maka grid tabel akan ditampilkan dan sebaliknya apabila tanda centang dihilangkan, grid tabel tidak akan ditampilkan. Di pernyataan baris nomor 70 – 76, grid ditampilkan atau dihilangkan dengan menggunakan metoda setShowGrid dari kelas JTable. Argumen parameter dari metoda tersebut adalah nilai boolean hasil dari ekspresi checkBoxGrid.isSelected(). Misalnya obyek check box dalam keadaan dicentang, maka ekspresi tersebut akan menghasilkan boolean true. Metoda setShowGrid dengan argumen bernilai true akan menjadikan grid tabel ditampilkan, begitu pula sebaliknya.

ActionEvent kedua terjadi di obyek combo box dari kelas JComboBox (pernyataan baris nomor 79 – 86). Apabila Anda mengklik untuk memilih salah satu warna yang tersedia di obyek tersebut, maka warna grid tabel akan berubah menyesuaikan warna yang dipilih di obyek combo box. Anda tentu mengetahui bahwa setiap sel obyek combo box menampilkan item atau elemen (obyek grafis) yang merupakan larik obyek berdimensi satu dengan dua indek dimana indek 0 adalah konstanta warna (kelas Color) dan indek 1 adalah literal string (baca artikel Mengenal Dan Memahami Cell Renderer Di Kelas JComboBox). Ketika salah satu sel obyek combo box dipilih, nilai sel dapat diperoleh dengan menggunakan metoda getSelectedItem. Nilai ini kemudian dikonversi kembali menjadi larik obyek. Anda dapat merubah warna grid tabel menggunakan metoda setGridColor dari kelas JTable dengan argumen berupa larik obyek di indek 0 yang terlebih dahulu dikonversi ke tipe kelas Color.

Menggunakan kelas JTable di Java

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.