我有一个具有Windows外观的Swing应用程序,而且我在使用JComboBox时遇到了困难。单击它时,默认的Windows按钮颜色更改功能正常工作(众所周知的Windows冰蓝色)。
但是,当我单击相邻字段时,其颜色不会改变。这是一个自定义表,两列连接在一起,颜色变化功能与JTextFields完美配合。
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (column == 0 || !isSelected || !table.hasFocus()) {
combobox.setForeground(table.getForeground());
combobox.setBackground(table.getBackground());
} else {
if (isSelected && table.hasFocus()) {
combobox.setForeground(table.getForeground());
combobox.setBackground(table.getSelectionBackground());
}
}
combobox.setFont(table.getFont());
combobox.getModel().setSelectedItem(value == null ? "" : value.toString());
return combobox;
}
现在这不起作用。当我点击邻近的文本字段时,isSelected&& table.hasFocus块被执行,但组合框的颜色保持不变。
的价值UIManager.getLookAndFeelDefaults().get("Button.background");
仍然[240; 240; 240]即使我直接点击组合框,它的颜色变成冰蓝色。
如何触发Windows冰蓝色?