Я пробовал разные вещи о том, как сделать Actions возобновляемыми в моих приложениях Swing. Я не дружу с тяжеловесными, более 1000 линейными классами (с большим количеством внутренних / аноновых классов) и пытаюсь разделить мой код на несколько классов. Таким образом, сделать их многоразовыми и легко заменяемыми.
Для повторного использования одних и тех же действий в приложении, которое я создал для каждого действия, своего собственного класса , чтобы использовать его в 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...");
}
}
}
Ждем ваших советов. Заранее спасибо.