0

アプリケーションにメニューがあり、メニュー項目の通常状態アイコンと押された状態アイコンを設定したい。通常状態のアイコンが追加されますが、メニュー項目を押しても、通常状態のアイコンが押されても変化しません。ここでの問題は何ですか:

        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"));
4

1 に答える 1

1

この問題は以前に見られました。継承されたsetPressedIconIconは、JMenu(または実際に)の背景を変更しませんJMenuItemMenuListener回避策として、コンポーネントでを使用できます。

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"));
    }
});
于 2013-02-23T00:15:39.757 に答える