2012-03-23 31 views

回答

4
  • 可共享一塊是一種常見的動作
  • 綁定屬性是其對SELECTED_KEY
代碼

價值,像

Action action = new AbstractAction("shared toggle") { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     LOG.info("pressed"); 
    } 
}; 
action.putValue(Action.SELECTED_KEY, Boolean.TRUE); 

JPopupMenu menu = new JPopupMenu(); 
menu.add(new JCheckBoxMenuItem(action)); 

JComponent box = new JPanel(); 
box.setComponentPopupMenu(menu); 
box.add(new JToggleButton(action)); 
box.add(new JCheckBox(action)); 
+0

用於共享按鈕後面的操作而不是偵聽器方法 – Robin 2012-03-23 09:59:35

+0

我的JToggleButton和JCheckBoxMenuItem處於不同的類中。我是否必須爲AbstractAction創建一個新類? – 2012-03-23 11:21:51

+0

它們所在的位置無關緊要:創建一個動作實例,然後使用該實例配置按鈕。 – kleopatra 2012-03-23 11:30:03

1

你可以讓他們共享相同的ButtonModelsetModelgetModelAbstractButton中定義。

+1

沒有,buttonModels不共享。 .. – kleopatra 2012-03-23 09:04:53

+0

@kleopatra關心擴大?我認爲這樣做是完全安全的。 – Jeffrey 2012-03-23 21:42:59