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