Java setPressedIcon не работает
У меня есть меню в приложении, и я хочу установить значок нормального состояния пункта меню и значок нажатого состояния. Значок нормального состояния добавляется, но когда я нажимаю пункт меню, значок нормального состояния не изменяется при нажатии значка состояния. В чем здесь проблема:
JMenu m=new JMenu(text);
m.setBackground(getTheme().colors.menuColor());
m.setOpaque(false);
m.setIcon(core.getIcon(text, "normal"));
m.setPressedIcon(core.getIcon("webmaps", "pressed"));
1 ответ
Решение
Эта проблема была замечена раньше. Унаследованный setPressedIcon не меняет фон Icon
на JMenu
(или действительно JMenuItem
). Вы могли бы использовать MenuListener
на компонент в качестве обходного пути:
m.addMenuListener(new MenuListener() {
@Override
public void menuSelected(MenuEvent e) {
JMenu menu = (JMenu) e.getSource();
menu.setIcon(core.getIcon("webmaps", "pressed"));
}
@Override
public void menuDeselected(MenuEvent e) {
JMenu menu = (JMenu) e.getSource();
menu.setIcon(core.getIcon(text, "normal"));
}
@Override
public void menuCanceled(MenuEvent e) {
JMenu menu = (JMenu) e.getSource();
menu.setIcon(core.getIcon(text, "normal"));
}
});