我在NetBeans平台(版本8.1)上开发了一个应用程序。我将动作定义为以下示例:
@ActionID(
category = "MyCategory",
id = "my.action.id"
)
@ActionRegistration(
displayName = "My Action", lazy = false
)
public final class MyAction extends AbstractAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
// Do some works
}
}
我想将此操作添加到多个类别。换句话说,我想从多个类别访问此操作。是否可以不创建另一个类?例如这样的东西:
@ActionID(
category = {"Category1", "Category2"},
id = "my.action.id"
)
...
...
答案 0 :(得分:0)
我有很多动作,可以从多个地方(类别)进行访问
如果您的意思是可以从用户界面的多个位置调用一项操作,例如您可以从菜单项和工具栏按钮访问“编辑”操作,然后在操作中使用@ActionReferences():
@ActionID(
category = "MyCategory",
id = "my.action.id"
)
@ActionRegistration(
displayName = "Edit",
lazy = false)
@ActionReferences(
{
@ActionReference(path="Toolbar/Edit", position=300),
@ActionReference(path="Menu/Edit", position=500),
@ActionReference(path="Shortcuts", name="C-F2"),
})
ActionId类别和ID只是在.xml图层文件中定义了动作引用的位置:“ Actions / category / id”。该类别通常用于对属于弹出菜单的动作进行分组,因为Netbeans使您可以轻松地使用Utilities.actionsForPath(“ Actions / category)然后使用Utilities.actionsToPopup()和返回的动作来构建一个动作。