e965. listening for changes to the rows and columns of a jtable component.txt
来自「这里面包含了一百多个JAVA源文件」· 文本 代码 · 共 56 行
TXT
56 行
This example demonstrates how to detect row and columns being added, deleted, or changed in a table component. To listen for these events, a listener must be added to the JTable's table model. Note: When a column is added, the type of the event is UPDATE.
table.getModel().addTableModelListener(new MyTableModelListener(table));
public class MyTableModelListener implements TableModelListener {
JTable table;
// It is necessary to keep the table since it is not possible
// to determine the table from the event's source
MyTableModelListener(JTable table) {
this.table = table;
}
public void tableChanged(TableModelEvent e) {
int firstRow = e.getFirstRow();
int lastRow = e.getLastRow();
int mColIndex = e.getColumn();
switch (e.getType()) {
case TableModelEvent.INSERT:
// The inserted rows are in the range [firstRow, lastRow]
for (int r=firstRow; r<=lastRow; r++) {
// Row r was inserted
}
break;
case TableModelEvent.UPDATE:
if (firstRow == TableModelEvent.HEADER_ROW) {
if (mColIndex == TableModelEvent.ALL_COLUMNS) {
// A column was added
} else {
// Column mColIndex in header changed
}
} else {
// The rows in the range [firstRow, lastRow] changed
for (int r=firstRow; r<=lastRow; r++) {
// Row r was changed
if (mColIndex == TableModelEvent.ALL_COLUMNS) {
// All columns in the range of rows have changed
} else {
// Column mColIndex changed
}
}
}
break;
case TableModelEvent.DELETE:
// The rows in the range [firstRow, lastRow] changed
for (int r=firstRow; r<=lastRow; r++) {
// Row r was deleted
}
break;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?