JTable เป็นคลาสย่อยของ JComponent ใช้สร้างตารางแสดงข้อมูลใน แถว (rows) และ คอลัมน์ (columns) เมื่อเลือกค่าจาก JTable จะสร้าง TableModelEvent ซึ่งจัดการได้โดยการ implement TableModelListener สามารถเพิ่มหรือแทรก Checkbox ลงในเซลล์ JTable ได้โดยการ override เมธอด getColumnClass() ที่คืนค่าเป็น Class type
ตัวอย่างโค้ด
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class JCheckBoxJTableTest extends JFrame {
private JTable table;
private DefaultTableModel model;
public JCheckBoxJTableTest() {
Random rnd = new Random();
model = new DefaultTableModel(new Object[]{"Check Box1", "Check Box2", "Check Box3"}, 0) {
@Override
public Class> getColumnClass(int columnIndex) {
return Boolean.class;
}
};
for (int index = 0; index < 10; index++) {
model.addRow(new Object[]{rnd.nextBoolean(), rnd.nextBoolean(), rnd.nextBoolean()});
}
table = new JTable(model);
add(new JScrollPane(table));
setTitle("JCheckBoxJTable Test");
setSize(375, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new JCheckBoxJTableTest();
}
}
ผลลัพธ์
