启用/禁用来自另一个操作的操作



我有一个叫AddAction的回调操作。当AddAction被按下时,我希望它启用TopComponent上的所有组件,同时禁用工具栏上的其他几个操作。然后,当按下SaveAction时,它将数据保存到数据库中,启用其他操作并禁用TC上的所有组件。

现在我有AddAction设置来启用所有组件,但我不知道如何禁用其他操作。

AddAction

@ActionID(
    category = "1",
id = "com.waudware.Actions.AddAction")
@ActionRegistration(
    iconBase = "com/waudware/Actions/Icons/add.png",
    displayName = "#CTL_AddAction",
    key = "AddAction")
@ActionReferences({
    @ActionReference(path = "Menu/Record", position = 3333),
    @ActionReference(path = "Toolbars/AddEditDelete", position = 100)
})
@Messages("CTL_AddAction=Add")
public final class EditAction implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
    }
}

TopComponent

public RouteTopComponent() {
        initComponents();
        setName(Bundle.CTL_RouteTopComponent());
        setToolTipText(Bundle.HINT_RouteTopComponent());
        getActionMap().put("AddAction", new AbstractAction(){
            @Override
            public void actionPerformed(ActionEvent e) {
                addRoute(true);
            }
        });
}
private void addRoute(boolean add) {
        txtRoute.setEnabled(add);
    }
  • Swing Action有setEnabled(boolean b)方法

  • 查看boolean isEnabled()和非常有用的get/putValue(字符串键,对象值)

我是怎么做的:

getActionMap().get("AddAction").setEnabled(true | false);

您还可以启用/禁用/隐藏整个工具栏

Toolbar toolbar;
toolbar = ToolbarPool.getDefault().findToolbar("toolbarName");
if (toolbar != null) {
    toolbar.setVisible(true | false);    // show / hide
    toolbar.setEnabled(true | false);    // enable / disable
}

相关内容

  • 没有找到相关文章

最新更新