2013-02-22 5 views
0

У меня есть меню в моем приложении, и я хочу установить значок нормального состояния элемента меню и нажать значок состояния. Значок нормального состояния добавляется, но когда я нажимаю элемент меню, значок нормального состояния не изменяется при нажатии значка состояния. Что здесь является проблемой: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

Эта проблема была seen before. Унаследованный 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")); 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^