这个压缩包里的都是超级经典的java例子
源代码在线查看: remcol.htm
Removing a Column from a JTable Component (Java Developers Almanac Example)
The Java Developers Almanac 1.4
Order this book from Amazon.
google_ad_client = "pub-6001183370374757";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_ad_channel = "4777242811";
google_ad_type = "text_image";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "6666CC";
google_color_url = "6666CC";
google_color_text = "000000";
//-->
Home
>
List of Packages
>
javax.swing.table
[62 examples]
>
Columns
[11 examples]
e922. Removing a Column from a JTable Component
To remove a column to a JTable component, the component must use
a table model that supports this operation. A simple implementation
of such a table model is DefaultTableModel.
DefaultTableModel.removeColumn() removes the visible
column, but leaves the column data in the table model. This example
provides a routine that removes both the visible column and the column
data.
DefaultTableModel model = new MyDefaultTableModel();
JTable table = new JTable(model);
table.setModel(model);
// Create 3 columns
model.addColumn("Col1");
model.addColumn("Col2");
model.addColumn("Col3");
model.addRow(new Object[]{"v1"});
// Remove the first visible column without removing the underlying data
table.removeColumn(table.getColumnModel().getColumn(0));
// Disable autoCreateColumnsFromModel to prevent
// the reappearance of columns that have been removed but
// whose data is still in the table model
table.setAutoCreateColumnsFromModel(false);
// Remove the first visible column and its data
removeColumnAndData(table, 0);
// Remove the last visible column and its data
removeColumnAndData(table, table.getColumnCount()-1);
// Removes the specified column from the table and the associated
// call data from the table model.
public void removeColumnAndData(JTable table, int vColIndex) {
MyDefaultTableModel model = (MyDefaultTableModel)table.getModel();
TableColumn col = table.getColumnModel().getColumn(vColIndex);
int columnModelIndex = col.getModelIndex();
Vector data = model.getDataVector();
Vector colIds = model.getColumnIdentifiers();
// Remove the column from the table
table.removeColumn(col);
// Remove the column header from the table model
colIds.removeElementAt(columnModelIndex);
// Remove the column data
for (int r=0; r<data.size(); r++) {
Vector row = (Vector)data.get(r);
row.removeElementAt(columnModelIndex);
}
model.setDataVector(data, colIds);
// Correct the model indices in the TableColumn objects
// by decrementing those indices that follow the deleted column
Enumeration enum = table.getColumnModel().getColumns();
for (; enum.hasMoreElements(); ) {
TableColumn c = (TableColumn)enum.nextElement();
if (c.getModelIndex() >= columnModelIndex) {
c.setModelIndex(c.getModelIndex()-1);
}
}
model.fireTableStructureChanged();
}
// This subclass adds a method to retrieve the columnIdentifiers
// which is needed to implement the removal of
// column data from the table model
class MyDefaultTableModel extends DefaultTableModel {
public Vector getColumnIdentifiers() {
return columnIdentifiers;
}
}
Related Examples
e915.
Converting a Column Index Between the View and Model in a JTable Component
e916.
Enumerating the Columns in a JTable Component
e917.
Setting the Width of a Column in a JTable Component
e918.
Setting the Column Resize Mode of a JTable Component
e919.
Locking the Width of a Column in a JTable Component
e920.
Appending a Column to a JTable Component
e921.
Inserting a Column in a JTable Component
e923.
Moving a Column in a JTable Component
e924.
Allowing the User to Move a Column in a JTable Component
e925.
Allowing the User to Resize a Column in a JTable Component
See also:
Cells
Column Heads
Editing
Events
Layout
Rows
Scrolling
Selection
Sorting
Table Model
Tool Tips
© 2002 Addison-Wesley.