Java Swing - Области, окружающие границы, не окрашены - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь настроить цветовую схему для моего Swing Gui на Java, но в некоторых компонентах у меня возникают пробелы.

Вот как выглядит моя рамка:

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);
...