【发布时间】:2014-04-25 16:08:48
【问题描述】:
在过去的几天里,我一直在努力寻找解决方案,这让我发疯了。我有一个表,我在其中将选择颜色设置为黄色。我还将单元格编辑器组件的背景设置为黄色,以便在编辑单元格时颜色保持不变。我通过重写 prepareEditor 方法来做到这一点:
@Override
public Component prepareEditor(TableCellEditor editor, int row, int col) {
Component c = super.prepareEditor(editor, row, col);
c.setBackground(Color.YELLOW);
c.setFont(myFont);
return c;
}
这适用于所有列,除了我将组合框指定为单元格编辑器的列。一旦我开始编辑该列中的单元格,背景就会变为白色。弹出菜单中的背景颜色为黄色,但所选值框中的背景颜色仍为白色。我尝试向组合框添加焦点侦听器,但我所能做的就是更改弹出项目的背景,而不是所选项目的背景。我尝试将焦点侦听器添加到组合框本身:
myComboBox.addFocusListener(new FocusListener() {//code here});
以及编辑器组件:
myComboBox.getEditor().getEditorComponent().addFocusListener(new FocusListener() {//code here});
这些都不起作用。有人可以指出我做错了什么吗?谢谢。
【问题讨论】:
-
也许如果你有一些“准备运行”的代码,尝试找到解决方案以提供帮助会更容易!
-
通常,在
JTable中调整单元格渲染的最佳方法是实现一个TableCellRenderer,它接收现有渲染器或子类希望使用的项目(JLabel,@ 987654328@,JComboBox) 然后应用您的任何自定义样式,然后从getTableCellRendererComponent()方法返回它。我不知道样式 JComboBoxes 的细节,因为我从来没有在 JTable 中修改它们,否则我会为您提供一些示例代码。 -
@user3245747 您可以将您现在拥有的内容发布为MCVE 吗?有组合框所在单元格的颜色和组合框中所选项目的颜色。我需要看看在哪里发生了什么。
标签: java jcombobox tablecelleditor