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

标签 java swing background jtable cell

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

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

最佳答案

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

Color color = UIManager.getColor("Table.selectionBackground");

其次,覆盖prepareEditor() ,如图所示 example , 并设置编辑器组件的背景颜色以匹配:

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

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

关于java - 如何更改 JTable 中已编辑单元格的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9538296/

相关文章:

java - 如何用数组的数组解析json数组

java - 将 JFrames 放在 JFrames 中

java - 垂直滚动条未出现

java - 选择复选框时如何从 jtable 和数据库中删除一行?

css - JQuery - 更改 CSS 背景图片

java - 软件即服务 (SaaS) 的应用程序设计

java - 为什么Java的HashTable是同步的?

java - JPA中如何查找非主键的列字段

jquery - 用JS获取元素CSS3背景色渐变

android - 背景图片崩溃android