![](/img/trans.png)
[英]How do I change background color of Java JComboBox in MacOS when not selected
[英]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.