我有一个叫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
}