Swing: убрать рамку фокуса с кнопок диалогов
Интересно, как убрать эту серую рамку из кнопок в диалогах?
Для простых кнопок J я нашел решение - просто используйте button.setFocusPainted(false);
Но есть ли простой способ выполнить то же самое для всех кнопок во всех диалогах? Я попытался просмотреть свойства UIManager, но кажется, что там нет подходящих параметров.
Заранее спасибо!
3 ответа
Решение
от
JButtons API
Вы можете использоватьJButton.setFocusable()
и сJButton.setBorderPainted(false);
от
UIManager
должен переопределить ключ (действительно для всего экземпляра JVM)
,
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
defaults.put("Button.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
- Я бы предложил изменить
Color
сtransparency
(4-й параметр в коде AM) в другой более достойныйColor
иначе вы не сможете увидеть фокус для любого из `JButtons
Вот глобальное исправление, поэтому вам не нужно делать это вручную для каждого элемента управления. Из моего другого поста: Отключить рамку фокусировки JButton
// Removes the dotted border around controls which is not consistent with Windows
UIManager.put("Button.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
UIManager.put("ToggleButton.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
// ways to remove it from other controls...
UIManager.put("CheckBox.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
UIManager.put("TabbedPane.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
UIManager.put("RadioButton.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
UIManager.put("Slider.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
// figure out combobox
UIManager.put("ComboBox.focus", new ColorUIResource(new Color(0, 0, 0, 0)));