Java 如何更改JTable中已编辑单元格的背景色?

Java 如何更改JTable中已编辑单元格的背景色?,java,swing,background,jtable,cell,Java,Swing,Background,Jtable,Cell,我到处找,但似乎还是找不到我问题的答案。我已经阅读了所有关于单元格渲染器和单元格编辑器的内容,但仍然不知道。。。我有一个JTable,我想确保用户清楚地看到他们正在编辑的单元格。默认情况下,JTable中已编辑的单元格的边框较暗,但我希望背景为绿色。选中时,我可以将其设置为绿色,但一旦我开始输入数据,绿色背景就会消失,我正在写入白色单元格 您能帮我找到一种方法,即使在输入数据时也能保持单元格背景为绿色吗 首先,获取表格的默认选择背景色: Color color = UIManager.getCo

我到处找,但似乎还是找不到我问题的答案。我已经阅读了所有关于单元格渲染器和单元格编辑器的内容,但仍然不知道。。。我有一个JTable,我想确保用户清楚地看到他们正在编辑的单元格。默认情况下,JTable中已编辑的单元格的边框较暗,但我希望背景为绿色。选中时,我可以将其设置为绿色,但一旦我开始输入数据,绿色背景就会消失,我正在写入白色单元格


您能帮我找到一种方法,即使在输入数据时也能保持单元格背景为绿色吗

首先,获取表格的默认选择背景色:

Color color = UIManager.getColor("Table.selectionBackground");
其次,重写,如图所示,并将编辑器组件的背景色设置为匹配:

@Override
public Component prepareEditor(TableCellEditor editor, int row, int col) {
    Component c = super.prepareEditor(editor, row, col);
    c.setBackground(color);
    return c;
}

附录:虽然技术上正确,但请注意,编辑器组件的颜色通常在激活时由相应的UI委托管理。不幸的选择可能会导致对比度差和可用性受损。我们保证对目标外观进行全面测试。

@mKorbel:谢谢;我已经在上面添加了一个警告,我欢迎您的任何想法。为什么您想要比默认设置更强烈的视觉线索@垃圾神发布了一个技术上正确的答案(假设编辑组件是不透明的),但你到底想实现什么?这是我的老板希望我做的事情-以前的程序是这样工作的,他们希望保持这种方式,因为用户已经习惯了。所以这只是用户的一个习惯。