java类库详细讲解
源代码在线查看: valueevent.html
Listening for Changes to the Rows and Columns of a JTable Component
(Java Developers Almanac Example)
BODY CODE {font-family: Courier, Monospace; font-size: 11pt} TABLE, BODY {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt} PRE {font-family: Courier, Monospace; font-size: 10pt} H3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11pt} A.eglink {text-decoration: none} A:hover.eglink {text-decoration: underline} -->
The Java Developers Almanac 1.4
Order this book from Amazon.
Home
>
List of Packages
>
javax.swing.table
[62 examples]
>
Events
[4 examples]
e964.
Listening for Changes to the Rows and Columns of a JTable Component
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;
}
}
}
Related Examples
e963.
Listening for Selection Events in a JTable Component
e965.
Listening for Column-Related Changes in a JTable Component
e966.
Listening for Clicks on a Column Header in a JTable Component
See also:
Cells
Column Heads
Columns
Editing
Layout
Rows
Scrolling
Selection
Sorting
Table Model
Tool Tips
© 2002 Addison-Wesley.