JTable เป็น subclass ของ JComponent สำหรับแสดงโครงสร้างข้อมูลซับซ้อน JTable ปฏิบัติตาม Model View Controller (MVC) design pattern แสดงข้อมูลใน rows และ columns JTable fire TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener และ RowSorterListener interfaces โดย default สามารถ edit text และแก้ไขภายใน JTable cell ได้ เราสามารถ disable cell editing ภายในตารางได้โดยเรียกเมธอด editCellAt() ของ JTable class และคืนค่า false
ตัวอย่าง
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public final class DisableJTableMouseClickTest extends JFrame {
private JTable table;
private JScrollPane scrollPane;
public DisableJTableMouseClickTest() {
setTitle("DisableJTableMouseClick Test");
String[] columnNames = {"Country", "Rank"};
Object[][] data = {{"England", "1"}, {"India", "2"}, {"New Zealand", "3"},
{"Australia", "4"}, {"South Africa", "5"}, {"Pakistan", "6"}};
table = new JTable(data, columnNames) {
public boolean editCellAt(int row, int column, java.util.EventObject e) {
return false;
}
};
table.setRowSelectionAllowed(false);
scrollPane = new JScrollPane(table);
add(scrollPane);
setSize(400, 275);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new DisableJTableMouseClickTest();
}
}
Output
