2013-01-17 71 views
1

我有一個名爲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

我做什麼:

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 
} 
相關問題