NetBeans平台:在多个类别中定义一个动作

时间:2019-04-24 08:32:53

标签: java action netbeans-8 netbeans-platform

我在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"
)
...
...

1 个答案:

答案 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()和返回的动作来构建一个动作。

相关问题