Best Practice using reusable Actions on GUI Components

Я пробовал разные вещи, как сделать Actions resuable в моих Swing-приложениях. Я не дружу с тяжеловесными классами в 1000+ строк (с большим количеством внутренних/одноклассников) и стараюсь разделить свой код на несколько классов. Таким образом, они могут быть использованы повторно и легко заменяемы.

Для повторного использования одних и тех же Actions в приложении я сделал для каждого Action свой собственный класс, чтобы использовать его в JMenuBar и JToolBar. Пожалуйста, посмотрите на минимальный пример ниже.

Является ли это хорошим выбором (особенно использование статических внутренних классов)?

public class SomeGUI extends JFrame {

    public static void main(String[] args)
    {
        new SomeGUI();
    }

    public SomeGUI()
    {
        setJMenuBar(new MyMenuBar());
        add(new MyToolBar());

        setSize(400, 400);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

}

class MyMenuBar extends JMenuBar {

    JMenu menu = new JMenu("File");

    public MyMenuBar()
    {
        add(menu);
        menu.add(new JMenuItem(new Actions.NewAction("New", null, "New File", KeyEvent.VK_N)));
    }

}

class MyToolBar extends JToolBar {

    public MyToolBar()
    {
        add(new Actions.NewAction("New", null, "New File", KeyEvent.VK_N));
    }

}

class Actions {

    static class NewAction extends AbstractAction {
        public NewAction(String name, ImageIcon icon, String desc, Integer mnemonic)
        {
            super(name, icon);
            putValue(SHORT_DESCRIPTION, desc);
            putValue(MNEMONIC_KEY, mnemonic);
        }

        @Override
        public void actionPerformed(ActionEvent paramActionEvent)
        {
            System.out.println("do the new action...");
        }
    }

}

Жду ваших советов. Заранее спасибо.

12
задан kiamlaluno 28 September 2011 в 12:08
поделиться