jTable仅选中复选框中选中的数据

时间:2014-09-14 17:57:51

标签: java swing jtable defaulttablemodel

嗨我在jTable中遇到单独数据的问题。

我的jTable:

enter image description here

当我点击第二个按钮时,我在jTable中有两个数据。 enter image description here

这是正确的,但当我再次点击第一个按钮时,我得到的是与第二个按钮中的jTable相同的jTable。

enter image description here

这是我的代码:

DefaultTableModel model = new DefaultTableModel();
model = (DefaultTableModel) jTable1.getModel();

for(int i = 0; i < jTable1.getRowCount(); i++)
{
   if(jTable1.getValueAt(i, 0) == Boolean.FALSE)
   {
       model.removeRow(i);
   }
}

jTable2.setModel(model);

但它不起作用。有没有人告诉我为什么?

1 个答案:

答案 0 :(得分:3)

  

但它不起作用。有没有人告诉我为什么?

当你删除例如第0行时,所有的行都向下移动一个,但是&#34; I&#34;不断增加,所以你会跳过&#34;跳过&#34;每次删除行时都有行。

解决方案是从最后一行开始并减少&#34;我&#34;:

for(int i = jTable.getRowCount() - 1; i >=0; I--)
  

这不是问题。

是的。您发布的示例仅有效,因为您选择了表中的每隔一行。尝试选择前两行,看看会发生什么。已经说过,这不是你问题的真正解决方案,因为你不应该从第一个TableModel中删除数据。

  

这是正确的,但当我再次点击第一个按钮时,我得到的是与第二个按钮中的jTable相同的jTable。

问题在于您无法从第一个TableModel中删除数据。您需要创建一个新的TableModel然后&#34;复制&#34;从第一个TableModel到第二个TableModel的数据。