-3

我已经阅读了 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 是字符串数组

4

1 回答 1

3

您想更改 JTable 的模型,而不是调用removeAll(). 请注意,如果您访问JTable API,您会发现该removeAll()方法不是专门针对 JTable 的方法,而是属于 Container(JTable 的父项之一)的方法。该方法不执行“特定于 JTable”的操作,而是删除容器持有的所有组件,例如 JPanel 中持有的组件。

要清空 JTable,您需要执行以下操作之一:

  • 删除 JTable 的当前模型持有的所有数据
  • 或将当前模型的行数设置为 0
  • setModel(...)或通过其方法将 JTable 的模型更改为新的(空)模型

您的解决方案的细节将取决于您当前代码的细节、您如何设置 JTable 及其模型等。有关更多信息,您需要向我们展示您的相关代码(最好是SSCCE)并给我们有关您的程序及其数据的更多信息,以及有关您的代码可能遇到的当前问题的详细信息。

有关更多信息,请查看JTable 教程


编辑

在camickr 接受的对您之前的 JTable 问题的回答中,您已经获得了指向 JTable 教程的相同链接。也许是时候考虑学习本教程了。

于 2013-08-11T17:17:56.753 回答