java - 如何插入/删除列到 JTable java

标签 java swing jtable

我不知道该怎么做。我正在创建一个应用程序。我需要使用表格,所以我使用的是 JTable。但是我有很多问题。 它似乎有效,但是当我尝试删除列时,该列消失了(仅在 GUI 中),但所有信息仍然存在。 columncount 也不会改变。
我搜索并尝试了很多不同的代码,但没有任何改变。

 public void addTblCol(JTable table,String name) {
    DefaultTableModel model = (DefaultTableModel)table.getModel();
     TableColumn col = new TableColumn(model.getColumnCount());

    col.setHeaderValue(name);
    table.addColumn(col);
    model.addColumn(name);
    this.realColCnt++;
      };
public void delTblCol(JTable table,int index) {
            DefaultTableModel model = (DefaultTableModel)table.getModel();
          TableColumn col = table.getColumnModel().getColumn(index);
    table.removeColumn(col);
    table.revalidate();
    this.realColCnt--;
      };

最佳答案

DefaultTableModel 支持 setColumnCount() 方法,该方法允许您仅从模型末尾删除列。

如果要从模型中间删除列,则需要:

  1. 扩展 DefaultTableModel 并创建您自己的 removeColumn(int column) 方法。
  2. 此方法需要遍历 Vector 中的每一行,并使用 Vector.remove(int) 方法删除每一行的列。
  3. 最后,完成此操作后,您需要调用 fireTableStructureChanged() 方法来告知表已删除一列,以便可以重新绘制表。

关于java - 如何插入/删除列到 JTable java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758002/

相关文章:

java - Mandrill API Java 单元测试

java - JScrollPane 仅使用水平滚动条显示内容

java - 最佳 Jtable 大小 java

java - 在 java 图像更改时启用转换

java - 如何在 java.swing JTextField 中存储字符串或整数?

java - JTable不显示所有记录

swing - Swing中的精美工具提示

java - Elasticsearch 使用 java api 返回原始 json

java - bean 中的 Spring 构造函数注入(inject)。是 bean 了吗?

java - 在 Java 中为类实现两种 Equals 方法