我需要从 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/