ADSENSE HERE!
Table model (baca artikel Table Model Dan Kelas Konkrit DefaultTableModel Di Pemrograman Java dan Contoh 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 (baca artikel Mengenal Table Column Model, DefaultTableColumnModel Dan TableColumn Di Pemrograman Java) untuk dapat menghapus kolom tabel yang diinginkan. Contoh 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 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).
ADSENSE HERE!
No comments:
Post a Comment