Comments 9
Такое есть уже. Например Groovy Swing Builder
Я, к сожалению, с Groovy еще не знаком. Но спасибо за ссылку, судя по всему итак довольно простые вещи сделали еще проще.
А вобще мне было интересно, в какой-то степени чисто для себя, рутину создания системы меню, которая сильно загрязняет код, превратить в приятное занятие не требующее больших усилий, как в имплементации, так и в поддержке :)
А вобще мне было интересно, в какой-то степени чисто для себя, рутину создания системы меню, которая сильно загрязняет код, превратить в приятное занятие не требующее больших усилий, как в имплементации, так и в поддержке :)
Если бы через XML еще и Action-ы привязывались к пунктам меню, то было бы намного полезней, а так мы получаем меню, которое ничего не делает. Попробуйте добавить в XML имя класса Action-а и создавать его в рантайме через рефлекшн, с последующей привязкой к пункту меню.
Для упрощения примера я не добавил геттер для JMenuItem, но в целом можно его добавить в XMLMenuParser и через него вешать ActionListener:
Просто тут была цель упрощения самого процесса создания меню. Хотя вы подкинули интересную идею для работы непосредственно с Action элементами, обязательно поэкспериментирую.
public JMenuItem getMenuItem(String name) {
return (JMenuItem)xmlMenuHandler.getMenuMap().get(name);
}
//Использование
xmlParser.getMenuItem("shortcut").addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
Просто тут была цель упрощения самого процесса создания меню. Хотя вы подкинули интересную идею для работы непосредственно с Action элементами, обязательно поэкспериментирую.
Мне кажется в yaml это выглядит изящнее:
и читать проще чем xml
Реализовано здесь:
code.google.com/p/javabuilders/
там еще много вкусного
JFrame(title=frame.title, iconImage=images/system-lock-screen.png):
- JMenuBar:
- JMenu(name=fileMenu,text=menu.file):
- JMenuItem(name=newMenu, text="New file", onAction=onFileNew)
- JMenuItem(name=openMenu, text="Open File", onAction=onFileOpen)
- JSeparator()
- JMenuItem(name=exitMenu, text="Exit", onAction=exit)
и читать проще чем xml
Реализовано здесь:
code.google.com/p/javabuilders/
там еще много вкусного
На замену Swing предлагают JavaFX 2.
Там уже есть FXML.
Пример: На NetBeans не обращайте внимание (оно и без него работает)
И действия указываются в дереве.
Там уже есть FXML.
Пример: На NetBeans не обращайте внимание (оно и без него работает)
И действия указываются в дереве.
Sign up to leave a comment.
Использование XML для генерации панели меню в Swing