На самом деле я использую Swing Application Framework в настольном приложении и хорошо использую постоянство состояния сеанса и менеджер ресурсов (отлично подходит для глобализации)
Сейчас я тестирую функцию аннотации @Action, и на самом деле я не вижу никаких преимуществ по сравнению с ее НЕиспользованием.
Официальный документ перечисляет в основном эти преимущества:
вы можете удобно поставить все
соответствующие визуальные подсказки и тому
логика обработки событий для компонента
в одном месте.
Да, это место, где хранятся визуальные подсказки, является комплектом ресурсов. (может использоваться с Resource Manager)
Да, логика обработки событий в одном месте находится в общем методе. но нет необходимости аннотировать метод, чтобы сделать его общим для нескольких событий.
Еще одно удобное преимущество использования
Интерфейсы действий - это то, что вы можете
повторно использовать одно и то же действие в нескольких
Компоненты пользовательского интерфейса. GUI часто предоставляют
несколько способов выполнить задачу
Да, очевидно, что обработка событий может быть общей для разных событий, но опять же использование аннотации @Action не требуется для вызова общего метода из разных методов прослушивателей действий.
Я не вижу большого преимущества в написании этого:
openButton.setAction(actionMap.get("open"));
// NOI18N
@Action public void open() {
// processing logic
}
вместо:
openButton.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
openButtonActionPerformed(evt);
} });
private void openButtonActionPerformed(java.awt.event.ActionEvent evt) {
// processing logic
}
Чтобы упомянуть, что при использовании последнего я сохраняю свой метод приватным, который более аккуратен, и я также сохраняю контроль над определенными компонентами, добавляемыми слушателем (так как каждый из них будет иметь свои собственные ресурсы вместо того, чтобы использовать одну и ту же визуальную подсказку !)
Кто-нибудь проявил реальный интерес к использованию аннотаций @Action?