我已经阅读了removeAll()方法的javadoc,但我不太清楚会发生什么。我需要删除myJtable中包含的所有数据,并添加新数据。 removeAll只会删除表中的数据吗?
这就是我宣布我的jtable的方式:
JTable table = new JTable(new DefaultTableModel(info, myHeader)) {
@Override
public boolean isCellEditable(int row, int column) {
//disable table editing
return false;
}
};
header = table.getTableHeader();
header.setBackground(Color.GREEN);
JScrollPane scroll_pane = new JScrollPane(table);
//hide column
table.removeColumn(table.getColumnModel().getColumn(1));
//scrollbar insert
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
//disable dragging and resizing column
table.getTableHeader().setReorderingAllowed(false);
table.getTableHeader().setResizingAllowed(false);
table.addMouseListener(new JTableRowListener(table));
其中JTable构造函数的args是String数组
答案 0 :(得分:3)
您想要更改JTable的模型,而不是调用removeAll()
。请注意,如果你转到JTable API,你会发现removeAll()
方法不是特定于JTable的方法,而是与JTable父母之一Container相关的方法。该方法不执行“JTable特定”操作,而是删除容器所持有的所有组件,例如JPanel中保存的组件。
要清空JTable,您需要执行以下操作之一:
setModel(...)
方法将JTable的模型更改为新的(空)模型您的解决方案的具体细节取决于您当前代码的具体情况,您如何设置JTable及其模型等。有关详细信息,您需要向我们展示您的相关代码(最好是{{ 3}})并向我们提供有关您的程序及其数据的更多信息,以及您可能在代码中遇到的当前问题的详细信息。
有关详情,请查看SSCCE。
您已经在JTable tutorial中获得了与之前JTable问题相同的JTable教程链接。也许是时候考虑学习这个教程了。