java - 如何从 Java 中的 Jtable 中删除多个列?

标签 java swing jtable tablecolumn

我需要从 Jtable 中删除 2 列。

如果我这样做:

try { 
jTable5.setModel(dtm);
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
jTable5.removeColumn(jTable5.getColumnModel().getColumn(6));
jTable5.setVisible(true);
} 
catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error");
}

然后显示“错误”。

但如果我这样做:

try { 
jTable5.setModel(dtm);
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
jTable5.setVisible(true);
} 
catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error");
}

没有显示错误,并且表格设置为正确可见。似乎我无法使用两次 removeColumn() 方法从模型中删除两列。

我注意到有一个 removeColumnSelectionInterval(),我应该使用这个吗?

有什么想法吗?

最佳答案

首先,你应该利用异常,不要只显示“错误”,显示e.getMessage()

try { 
jTable5.setModel(dtm);
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
jTable5.removeColumn(jTable5.getColumnModel().getColumn(6));
jTable5.setVisible(true);
} 
catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error " + e.getMessage());
e.printStackTrace();//shows more detailed stack trace
}

并使用e.printStackTrace()...

第二,我想当你删除第一列时,其他列就会移动, 所以当你删除第 5 列时,第 6 列就没有了,因为它被移动了,现在第 5 列也被移动了,这就是导致错误的原因,

所以一个疯狂的猜测是使用

jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));

是的,删除 5 两次。

关于java - 如何从 Java 中的 Jtable 中删除多个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23509737/

相关文章:

java - HttpURLConnection 不适用于 Android

java - 坚持测试一种方法

java - Git分支管理: Local vs.远程

java - 如何将Gradle与Maven合并

java - 通过监听器从网格面板更新组件

java - 如何从 HTMLEditorKit 获取特定操作?

java - 包含 JButton 对象的数组

java - 基于俄罗斯方 block 游戏创建的数组为 JTable 单元格着色

java - 如何使 JTable 不可编辑

java - 如何读取txt文件的特定行并显示到JTable