2010-01-13 68 views
2

我实际上在桌面应用程序上使用Swing应用程序框架,并充分利用会话状态持久性和资源管理器(非常适合全球化)Swing应用程序框架@Action注释?做什么的?

现在我一直在测试@Action注释功能,没有看到任何优势,而不是使用它。 官方文档列表这些主要优点:

您可以方便地把所有的 相关的视觉线索和 事件处理逻辑组件 在一个地方。

是这个地方储存视觉线索是资源包。 (可以与资源管理器被使用) 是在一个地方的情况下,处理逻辑是一种常见的方法之内。但不需要对方法进行注释以使其在多个事件中共同使用。

使用 操作界面的另一个便利的好处是,你可以 重复使用多个 UI组件同样的动作。图形用户界面通常提供 多种方式来完成任务

是,明明事件处理可通用于不同的事件,但再次使用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注释有趣吗?

回答

1

当我使用NetBeans每一个标有@Action方法将在NetBeans GUI可自动对部件设置的操作。

+0

我明白了。但是,为什么要使用注释为了在NetBeans编辑器中设置组件的操作而不是(仍然使用NetBeans编辑器)向组件添加事件监听器?有什么优势? – user225486 2010-01-14 13:41:41

+0

嗯,他们不在那里,所以有些事情可以自动为你做,并为你节省一些锅炉代码?我暂时还没有使用它,所以我不记得框架+ netbeans为你做了什么 – willcodejavaforfood 2010-01-14 13:52:05

+0

我没有看到使用注释自动生成的代码,这些注释不能由NetBeans编辑器自动生成。 真的,我没有看到使用动作注释的优势。 – user225486 2010-01-18 22:29:12

2

文档提供的回答你的问题。

http://java.sun.com/developer/technicalArticles/javase/swingappfr/#actions

我觉得优势,使用@Action而不是匿名的ActionListener是@Action是一个很不错的,方便钩到框架,这使得它很容易本地化的东西的动作,如图标,文本或助记符。此外,如果您@Action注释的方法返回一个任务目标,框架适当的处理执行代码,不应该在美国东部时间运行。

如果不使用框架@Action,您必须非常小心地本地化您的ActionListeners,并更加小心如何管理不应该在EDT上运行的代码(如果您需要响应式UI)。

对返回任务的方法使用@Action是这个框架提供的一个非常强大的方便。