从其他操作启用/禁用操作

时间:2013-01-17 21:13:23

标签: java swing netbeans action netbeans-platform

我有一个名为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);
    }

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我的所作所为:

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
}