Program Java menggunakan table column model defaulttablemodel
Contoh Program Java Menggunakan Table Column Model
Table model (artikel Table Model Dan Kelas Konkrit DefaultTableModel Di Java dan Program Java Menggunakan Metoda Kelas Konkrit DefaultTableModel) hanya dapat digunakan untuk menambah kolom tabel, tetapi tidak dapat digunakan untuk menghapusnya. Anda perlu menggunakan table column model (artikel Table Column Model, DefaultTableColumnModel Dan TableColumn Di Java) untuk dapat menghapus kolom tabel yang diinginkan.

Program berikut ini mendemonstrasikan bagaimana menggunakan table column model untuk menghapus dan memindahkan kolom di sebuah table:

  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
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// Nama file : TabelPenjualanNotebook3.java
// Penggunaan table column model untuk menghapus dan memindahkan kolom

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

// Deklarasi kelas
public class TabelPenjualanNotebook3 extends JFrame {

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

   // Membuat data tabel
   private Object[][] dataTabel = {
      {"Satellite L630-1031U", "Black", new Boolean(false), new Integer(3),
        new Integer(6300000)},
      {"Satellite L645-1043XB", "Brown", new Boolean(true), new Integer(7),
        new Integer (7500000)},
      {"Qosmio X500-D832", "Black", new Boolean(true), new Integer(4),
        new Integer(14000000)},
      {"Portege T210-1014UR", "Red", new Boolean(true), new Integer(6),
        new Integer(6800000)},
      {"Libretto W100-1002U", "Black", new Boolean(true), new Integer(1),
        new Integer(12000000)}
   };

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

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

   // Membuat obyek check box
   private JCheckBox grsVertikal = new JCheckBox(
      "Tampilkan garis vertikal", true);
   private JCheckBox grsHorisontal = new JCheckBox(
      "Tampilkan garis Horisontal", true);

   // Membuat obyek button (tombol)
   private JButton hapus = new JButton("Hapus kolom");
   private JButton pindah = new JButton("Pindahkan kolom ke posisi kedua");

   // Konstruktor tanpa argumen
   public TabelPenjualanNotebook3() {

      // Menginisialisasi tabel
      tabel.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
      tabel.setColumnSelectionAllowed(true);
      tabel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

      // Mengelompokkan obyek check box
      JPanel panel1 = new JPanel();
      panel1.setLayout(new FlowLayout());
      panel1.add(grsVertikal);
      panel1.add(grsHorisontal);

      // Mengelompokkan obyek tombol
      JPanel panel2 = new JPanel();
      panel2.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0));
      panel2.add(hapus);
      panel2.add(pindah);

      getContentPane().add(panel1, BorderLayout.PAGE_START);
      getContentPane().add(new JScrollPane(tabel), BorderLayout.CENTER);
      getContentPane().add(panel2, BorderLayout.PAGE_END);

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

      grsHorisontal.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            tabel.setShowHorizontalLines(grsHorisontal.isSelected());
         }
      });

      // Penanganan event button
      hapus.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            if (tabel.getSelectedColumn() >= 0) {
               TableColumnModel modelKolom = tabel.getColumnModel();
               TableColumn kolomDihapus = 
               modelKolom.getColumn(tabel.getSelectedColumn());
               modelKolom.removeColumn(kolomDihapus);
            }
            else
               JOptionPane.showMessageDialog(null,
                  "Pilih kolom yang akan dihapus!", "Hapus Kolom",
                  JOptionPane.INFORMATION_MESSAGE);
         }
      });

      pindah.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {

            if (tabel.getSelectedColumn() >= 0) {
               int indekLama = tabel.getSelectedColumn();
               int indekBaru = 1;
               TableColumnModel modelKolom = tabel.getColumnModel();
               modelKolom.moveColumn(indekLama, indekBaru);
            }
            else
               JOptionPane.showMessageDialog(null,
                  "Pilih kolom yang akan dipindah!", "Pindah Kolom",
                  JOptionPane.INFORMATION_MESSAGE);
         }
      });
   }

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

Menggunakan table column model di program Java

Baris nomor 86 – 99 adalah blok pernyataan yang dieksekusi ketika tombol berlabel “Hapus kolom” ditekan. Pernyataan penyeleksian baris nomor 88 memastikan terlebih dahulu apakah sebuah kolom yang akan dihilangkan telah dipilih dengan mengklik di salah satu sel kolom tersebut. Apabila belum ada kolom yang dipilih dan tombol untuk menghapus kolom ditekan, maka kotak dialog pesan muncul yang menyarankan untuk memilih terlebih dahulu kolom yang ingin dihapus.

Pernyataan baris nomor 89 mengembalikan obyek table column model yang digunakan tabel. Table column model dari tabel adalah DefaultTableColumnModel yang berisi semua informasi kolom tabel. Informasi ini disimpan di variabel acuan modelKolom. Baris nomor 90 adalah pernyataan untuk menentukan model kolom individu dari kolom yang dipilih. Atribut-atribut dari kolom ini disimpan di variabel acuan kolomDihapus.

Untuk menghapus kolom tertentu yang dipilih, Anda menggunakan metoda removeColumn dari kelas DefaultTableColumnModel dengan argumen parameter berupa variabel yang mengacu ke kelas TableColumn (pernyataan baris nomor 92). Pernyataan baris nomor 101 – 115 digunakan untuk memindahkan posisi kolom saat ini ke posisi baru. Di contoh program ini, kolom yang telah dipilih di posisi saat ini dipindahkan ke posisi kolom kedua.

Sebelum menekan tombol berlabel “Pindahkan kolom ke posisi kedua”, kolom yang akan dipindahkan terlebih dahulu harus sudah dipilih, bila tidak, kotak dialog ditampilkan yang meminta Anda untuk memilih terlebih dahulu kolom yang akan dipindahkan. Untuk memindahkan kolom, digunakan metoda moveColumn. Di pernyataan baris nomor 108, argumen parameter pertama bernilai int yang mewakili indek posisi saat ini dari kolom yang akan dipindahkan (indekLama) dan argumen parameter kedua bernilai int yang mewakili indek posisi baru (indekBaru).

Produk Populer

Murah Taffware OKD180 power supply station 220V 69800mAh
Taffware OKD180 Outdoor Power Station

Banyak jenis output, garansi resmi 1 tahun, kapasitas besar 69800 mAh, 180 watt, dan mudah dibawa.

Rp 1.045.500
(4.8/5)
Murah Fosi Audio DA2120C Power Amplifier
Fosi Audio DA-2120C Power Amplifier

2.1 channel, input bluetooth, USB, optical, coaxial, dan RCA, output ke speaker dan subwoofer pasif.

Rp 2.138.900
(5/5)
Murah Fosi Audio BT30D Pro Power Amplifier
Fosi Audio BT30D Pro Power Amplifier

2.1 channel, input bluetooth dan RCA, output speaker pasif dan aktif, serta subwoofer pasif dan aktif.

Rp 1.246.700
(5/5)
Murah Meiyulin OKD320A Power Station
Meiyulin OKD320A Outdoor Power Station

Banyak jenis output, proteksi keamanan, kapasitas besar 84000 mAh, 300 watt, dan mudah dibawa.

Rp 1.547.500
(5/5)