Java JTable从相邻的相同值列中删除值

Java JTable从相邻的相同值列中删除值,java,swing,jtable,Java,Swing,Jtable,在JTable中,如何检测DefaultTableCellRenderer的GetTableCellRenderComponent中一行中彼此相邻且具有相同值的所有单元格?然后,我需要从除中心值以外的所有值中删除所述值。。我试过了 if(table.getValueAt(row, column-1) == value && table.getValueAt(row, column+1) == value) { setValue("K") } 确保我至少可以检测到中心,但

在JTable中,如何检测DefaultTableCellRenderer的
GetTableCellRenderComponent
中一行中彼此相邻且具有相同值的所有单元格?然后,我需要从除中心值以外的所有值中删除所述值。。我试过了

if(table.getValueAt(row, column-1) == value && table.getValueAt(row, column+1) == value) {
    setValue("K")
}
确保我至少可以检测到中心,但这仅在3个单元格具有相同值时有效。。我需要更多

if(table.getValueAt(row, column-1) == value && table.getValueAt(row, column+1) == value) {
    //add this
    for (int i = column; table.getValueAt(row, i) == value; i++)
        setValue("K");
}

您正在更改值并在之后进行比较,因此该条件只触发了一次。

您可以在整行上循环,并检查每一行是否与所需的值相同:

boolean same = true;
for (int col = 0; col < columnCount; col++) {
    if (table.getValueAt(row, col ) != value) {
         same = false;
         break;
    }
}
if (same) {
    setValue("K");
}
boolean same=true;
for(int col=0;col
您的问题是在测试其他单元格之前更改了值,因此之后不会触发该条件。
在DefaultTableCellRenderer的
中执行此操作如何?否。渲染器用于在单元格中显示数据。渲染器不用于处理逻辑。你的问题没有足够的信息。例如,有多少列数据?如果一行中有5列具有相同的值,会发生什么情况?4列怎么样。您何时进行此检查,何时加载数据?数据可以更改吗?@camickr那么我应该把它放在哪里?@RandoHinn,我完全不知道。正如我已经告诉您的,我不理解您的要求,您也没有提供任何其他信息。在DefaultTableCellRenderer的重写的
GetTableCellRenderComponent
中执行此操作如何?编辑op以指定此..
如何在DefaultTableCellRenderer的
中执行此操作-否。渲染器用于在单元格中显示数据。渲染器不用于处理逻辑。