鼠标悬停时触发窗口按钮背景颜色更改

时间:2013-03-05 08:52:40

标签: java swing jtable jcombobox tablecellrenderer

我有一个具有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冰蓝色?

0 个答案:

没有答案