Я создаю несколько кнопок с видимым только их изображением:
public static JButton createImageButton(ImageIcon image) {
JButton btn = new JButton(image);
btn.setContentAreaFilled(false);
btn.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
return btn;
}
Это дает мне следующий результат:
При нажатии на кнопку я обычно получаю:
Но когда я поменяю LaF на Nimbus, этого не произойдет.
Есть ли возможность настроить Nimbus на затемнение значка при нажатии кнопки?
Я уже пытался изменить некоторые настройки кнопок по умолчанию следующим образом:
UIManager.getLookAndFeelDefaults()
.put("Button[Pressed].backgroundPainter", new CustomPainter());
Но я не уверен, как написать класс CustomPainter
и решит ли это проблему вообще...
MCVE
/SSCCE
, короткий, работоспособный, компилируемый с помощью встроенногоIcons
в JVM, например.private Icon loadIcon = UIManager.getIcon("OptionPane.errorIcon");
- person mKorbel   schedule 02.09.2016While pressing the button I usually get
иBut when I change the LaF to Nimbus, this won't happen.
, эта функциональность одинакова (Mouse и KeyEvent в JButton / AbstractButton), используя все стандартные L&F в Win OS, не имеет значения, есть ли backgroundPainter или нет, голосование за закрытие тоже - person mKorbel   schedule 02.09.2016