1
我構建了一個JMenu的,現在想添加菜單項所以我有什麼是:JMenu的:添加(行動一)與加(新的JMenuItem(Action a)該
- JMenu的JM
- 行動行動
現在,添加菜單項觸發動作的行爲:是否有所作爲,如果我用
jm.add(act);
或
jm.add(new JMenuItem(act));
?
我構建了一個JMenu的,現在想添加菜單項所以我有什麼是:JMenu的:添加(行動一)與加(新的JMenuItem(Action a)該
現在,添加菜單項觸發動作的行爲:是否有所作爲,如果我用
jm.add(act);
或
jm.add(new JMenuItem(act));
?
根據JMenu.add(Action)的文檔,它會爲您創建一個新的菜單項,所以它們基本相同。所以它最終是一種方便的方法。
然而,它也規定:
作爲1.3,這是不再添加操作到 容器中的 優選方法。相反,建議使用 使用setAction配置動作爲 的控件,然後將該控件直接添加到容器。
如果我們看看在JMenu的源代碼(從Google Code Search檢索),這是add(Action)
方法是什麼樣子:
public JMenuItem add(Action a) {
JMenuItem mi = createActionComponent(a);
mi.setAction(a);
add(mi);
return mi;
}
因此,沒有,沒有大的差別。但我仍然通過手動製作控件來遵循文檔的建議。
有沒有人有關於爲什麼第一個選項不再是首選方法的信息?我試圖通過谷歌找到解釋,但不能。既然它在內部確實建議明確做什麼,在這種情況下增加冗長度的優勢在哪裏呢? (對不起,如果這個問題的答案對其他人都是顯而易見的,但我 - 我仍然是一個編程新手,試圖學習。) – steps 2011-02-02 15:52:18