繁体   English   中英

如何更改鼠标 hover 上 Jcombobox Java 单元格的颜色?

[英]In what way do I change the color of Jcombobox Java cell on mouse hover?

当我将鼠标悬停在组合框上的单元格上时,我正在尝试更改颜色。 我是为此使用鼠标事件还是仅使用此单元格渲染器?

如何更改鼠标 hover 上JComboBox单元格的颜色?

这是我的代码:

jComboBox2.setRenderer(new DefaultListCellRenderer() {
    public Component getListCellRendererComponent(JList list,Object value,int index,boolean isSelected,boolean cellHasFocus) {
        Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
        if (isSelected){
            c.setBackground(new Color(242,242,242));
        }
        if(index == 0){
            c.setForeground(new Color(242,242,242));
            c.setBackground(new Color(26,35,48));
        }
        if(index == 1){
            c.setForeground(new Color(101,150,226));
            c.setBackground(new Color(26,35,48));
        }
        if(index == 2){
            c.setForeground(new Color(77,105,205));
            c.setBackground(new Color(26,35,48));
        }
        if(index == 3){
            c.setForeground(new Color(137,71,255));
            c.setBackground(new Color(26,35,48));
        }
        if(index == 4){
            c.setForeground(new Color(212,43,230));
            c.setBackground(new Color(26,35,48));
        }
        if(index == 5){
            c.setForeground(new Color(235,75,75));
            c.setBackground(new Color(26,35,48));
        }
        else {

        }
        return c;
    }
});

组合框图像

我找到了答案

如果要更改 hover 上的颜色,我只需要嵌套

像这样

if(index == 0){
    c.setForeground(new Color(242,242,242));
    c.setBackground(new Color(26,35,48));
    if (isSelected) {
        c.setBackground(new Color(49,62,80));
    }
}

组合框图像

问题:它还应该改变 combobox 的前景色。 jComboBox2.setForeground(新颜色(211,211,211)); if(isSelected){} 内部不起作用

将 if(isSelected){c.setForeground(new Color(211,211,211));} 放在else语句的末尾,这样我们就可以覆盖颜色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM