渲染器是“橡皮图章”。基本上,这意味着它们会将先前的设置带到下一个单元格。
您需要做的是提供“默认”行为
if (!isRowSelected(row) ) { c.setBackground((hashMapcontainer .containsKey(row)) ? Color.GREEN : getBackground());} else { // Define the default background color // Don't forget to take into the selection state}虽然我个人认为
prepareRenderer在这种情况下可能是一个公平的解决方案,但您确实应该探索提供基线渲染器的可能性。这是一项很艰巨的工作,但具有可移植性(如果您更改表实现)的优点,并且允许其他人定义给定单元格的突出显示规则的机会,而您基本上已经将其覆盖并覆盖,
恕我直言。
我还建议您看一下JXTable,因为它具有内置突出显示功能



