Java - JComboBox删除突出显示

时间:2016-11-10 15:32:45

标签: java jframe jpanel jcombobox jcomponent

目前我正在与一些JComponents合作构建一个小工具。当我改变一些像背景颜色这样的东西时,可见组合框有一些突出的边框。我已经删除了边框并更改了其外观的所有选项。有人知道这个高亮调用是什么或者如何删除它?

Here you can see the slight blue/white highlight.

2 个答案:

答案 0 :(得分:0)

您可能正在谈论ComboBox的渲染器。

以下链接可能会帮助您:

http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#renderer

您可以覆盖ComboBox的默认实现,以创建自己的自定义版本。

更具体地说,请查看setForegroundconst char source[] = "CA: ABCD\0CB: ABFG\0CC: AFBV\0CD: 4567"; int len = sizeof(source); std::map<std::string, std::string> pairs; const char* end = source + len; const char* start = source; while (start < end) { const char* sep = strchr(start, ':'); const char* pair_end = strchr(sep + 2, '\0'); pairs.emplace(std::string(start, sep), std::string(sep + 2, pair_end)); start = pair_end + 1; } 部分。

答案 1 :(得分:0)

我终于找到了! 问题在于主题的“阴影”颜色。 您可以创建一个新类,该类将更改“金属LAF”海洋主题中的颜色设置。

import javax.swing.plaf.ColorUIResource;
import javax.swing.plaf.metal.OceanTheme;

public class NewTheme extends OceanTheme{
  public  ColorUIResource getControlShadow(){
    return new ColorUIResource(255,255,255);
 }

}

完成后,只需用这些代码行设置这个新主题:

 UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); 
 MetalLookAndFeel.setCurrentTheme(new NewTheme());