我正在尝试为Java中的Swing Gui自定义配色方案,但最终在某些组件中存在一些空白。
这是我当前的画面:
https://i.stack.imgur.com/37iRO.png
主要问题在于菜单分隔符周围以及菜单顶部和底部的白色区域。我也遇到类似的问题,进度栏顶部显示白色区域。
通过禁用菜单项上的边框,我能够摆脱菜单侧的类似缝隙,这使我相信这是其他组件上边框的问题,但是禁用了菜单项上的边框进度栏和菜单无效。我的猜测是这些区域可能只是由其他变量控制的,但是尽管梳理了javadocs,我还是找不到任何东西。
这里有我的代码,用于管理相关组件上的颜色:
//Common Components
Border mainBDR = BorderFactory.createLineBorder(new Color(50,50,50));
Color selectionBackCLR = new Color(50,50,50);
Color selectionForeCLR = new Color(0,0,0);
Color mainBackCLR = new Color(0,0,0);
Color mainTextCLR = new Color(100,100,100);
Color mainDevCLR = new Color(20,20,20);
//MenuItem Settings
UIManager.put("MenuItem.borderPainted", false);
UIManager.put("MenuItem.background", mainDevCLR);
UIManager.put("MenuItem.foreground", mainTextCLR);
UIManager.put("MenuItem.selectionBackground", selectionBackCLR);
UIManager.put("MenuItem.selectionForeground", selectionForeCLR);
//CheckBoxMenuItem Settings
UIManager.put("CheckBoxMenuItem.borderPainted", false);
UIManager.put("CheckBoxMenuItem.background", mainDevCLR);
UIManager.put("CheckBoxMenuItem.foreground", mainTextCLR);
UIManager.put("CheckBoxMenuItem.selectionBackground", selectionBackCLR);
UIManager.put("CheckBoxMenuItem.selectionForeground", selectionForeCLR);
//JProgressBar Settings
UIManager.put("ProgressBar.background", mainDevCLR);
UIManager.put("ProgressBar.foreground", mainTextCLR);
UIManager.put("ProgressBar.border", mainBDR);