目前我正在与一些JComponents合作构建一个小工具。当我改变一些像背景颜色这样的东西时,可见组合框有一些突出的边框。我已经删除了边框并更改了其外观的所有选项。有人知道这个高亮调用是什么或者如何删除它?
答案 0 :(得分:0)
您可能正在谈论ComboBox的渲染器。
以下链接可能会帮助您:
http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#renderer
您可以覆盖ComboBox的默认实现,以创建自己的自定义版本。
更具体地说,请查看setForeground
和const 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());