Listen for Column-Related Changes in a JTable in Java
Description
The following code shows how to listen for Column-Related Changes in a JTable.
Example
import java.awt.BorderLayout;
// w w w. ja v a2 s . c om
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.TableColumnModelEvent;
import javax.swing.event.TableColumnModelListener;
public class Main {
public static void main(String args[]) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Object rowData[][] = { { "Row1-Column1", "Row1-Column2", "Row1-Column3" },
{ "Row2-Column1", "Row2-Column2", "Row2-Column3" } };
Object columnNames[] = { "Column One", "Column Two", "Column Three" };
final JTable table = new JTable(rowData, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 150);
frame.setVisible(true);
table.getColumnModel().addColumnModelListener(new MyTableColumnModelListener(table));
}
}
class MyTableColumnModelListener implements TableColumnModelListener {
JTable table;
public MyTableColumnModelListener(JTable table) {
this.table = table;
}
public void columnAdded(TableColumnModelEvent e) {
int fromIndex = e.getFromIndex();
int toIndex = e.getToIndex();
System.out.println(fromIndex);
System.out.println(toIndex);
}
public void columnRemoved(TableColumnModelEvent e) {
int fromIndex = e.getFromIndex();
int toIndex = e.getToIndex();
System.out.println(fromIndex);
System.out.println(toIndex);
}
public void columnMoved(TableColumnModelEvent e) {
int fromIndex = e.getFromIndex();
int toIndex = e.getToIndex();
System.out.println(fromIndex);
System.out.println(toIndex);
}
public void columnMarginChanged(ChangeEvent e) {
System.out.println(e);
}
public void columnSelectionChanged(ListSelectionEvent e) {
System.out.println(e);
}
}
The code above generates the following result.
Home »
Java Tutorial »
Swing »
Java Tutorial »
Swing »