gpt4 book ai didi

java - 在 JTable 中选择行时索引错误

转载 作者:行者123 更新时间:2023-12-01 23:29:00 24 4
gpt4 key购买 nike

我有一个弹出菜单可以删除 JTable 中的多行。该表有一列包含 boolean 值(真/假)。如果该列的值为 true,将删除该行。但选择的索引数组是错误的。示例:选择索引为 2,3,4 的行,但结果为 0,2,3。第一行始终被选中。如果无条件选择多行,结果是正确的。

有人可以帮助我吗?

这是示例代码(使用 Netbeans):

private void menuDeleteLOANActionPerformed(java.awt.event.ActionEvent evt) {                                               
int[] rows = this.tabMAIN.getSelectedRows();
try {
for(int i = rows.length-1; i >= 0; i--){
boolean temp = ((Boolean)this.tabMAIN.getValueAt(i, 8)).booleanValue();
if(temp == true){
System.out.println("ID "+this.tabMAIN.getValueAt(i, 3)+((Boolean)this.tabMAIN.getValueAt(i, 8)).booleanValue());
}else{
System.out.println("ID "+this.tabMAIN.getValueAt(i, 3)+((Boolean)this.tabMAIN.getValueAt(i, 8)).booleanValue());
}
}
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

最佳答案

您没有访问数组的值。这应该我更正确:

private void menuDeleteLOANActionPerformed(java.awt.event.ActionEvent evt) {                                               
int[] rows = this.tabMAIN.getSelectedRows();
try {
for(int i = rows.length-1; i >= 0; i--){
boolean temp = ((Boolean)this.tabMAIN.getValueAt(rows[i], 8)).booleanValue();
if(temp == true){
System.out.println("ID "+this.tabMAIN.getValueAt(rows[i], 3)+((Boolean)this.tabMAIN.getValueAt(rows[i], 8)).booleanValue());
}else{
System.out.println("ID "+this.tabMAIN.getValueAt(rows[i], 3)+((Boolean)this.tabMAIN.getValueAt(rows[i], 8)).booleanValue());
}
}
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

关于java - 在 JTable 中选择行时索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com