JTable เป็น subclass ของ JComponent สร้างตารางแสดงข้อมูลใน multiple rows and columns เมื่อเลือกค่าจาก JTable จะสร้าง TableModelEvent จัดการโดย implement TableModelListener interface โดย default สามารถ re-ordering columns ใน JTable ได้ เราสามารถไม่ให้ user reorder columns ได้โดยใช้ table.getTableHeader().setReorderingAllowed() method ตั้งค่าเป็น false
ตัวอย่าง
import java.awt.*;
import javax.swing.*;
public final class JTableColumnReorderingTest extends JFrame {
JTable table;
JScrollPane scrollPane;
public JTableColumnReorderingTest() {
setTitle("JTableColumnReordering Test");
String[] columnNames = {"Name", "Mobile Number", "Course"};
Object[][] data = {{"Raja", "123456789", "Java"}, {"Adithya", "456123789", ".Net"},
{"Vineet", "789456123", "Java Script"}, {"Archana", "987456321", "Python"},
{"Krishna", "321456987", "Scala"}, {"Jai", "456321789", "ServiceNow"}};
table = new JTable(data, columnNames);
scrollPane = new JScrollPane(table);
table.getTableHeader().setReorderingAllowed(false); // ไม่อนุญาต re-ordering columns
table.getTableHeader().setResizingAllowed(false);
add(scrollPane);
setSize(375, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new JTableColumnReorderingTest();
}
}
Output
