2012-04-15 54 views
1

複製和粘貼菜單我明白,你可以:爪哇 - 如何掛鉤到在Mac OS

// Where CustomMacOSXController implements implements MRJAboutHandler, ... 
CustomMacOSXController macOSXController = new CustomMacOSXController() 

MRJApplicationUtils.registerAboutHandler(macOSXController); 
MRJApplicationUtils.registerPrefsHandler(macOSXController); 
//... and so on 

但是我不能這樣,當它被稱爲發現什麼掛鉤複製和粘貼菜單,當前所選的JTextField將受到影響(例如,粘貼將粘貼剪貼板到選定的JTextField中

回答

4

與Mac OS X系統和應用程序菜單不同,編輯菜單完全在您的程序範圍之內。使用Action來創建和填充javax.swing.text.TextAction中定義的預定義子類是ha ndy,因爲他們知道關注的組成部分。另請參閱此相關的Q&Aexample。例如,

Action pasteAction = new DefaultEditorKit.PasteAction(); 
JMenuItem pasteItem = new JMenuItem(pasteAction); 
JButton pasteButton = new JButton(pasteAction); 

附錄:爲了充分整合您的編輯菜單在Mac OS X,你必須告訴操作系統使用你的菜單,使用here所示的方法之一。要獲得平臺相關的修飾鍵,請使用getMenuShortcutKeyMask(),如here所示。最後,查爾斯貝爾的HTMLDocumentEditor是一個使用text actions的例子。

+0

我很抱歉,但我不明白你在說什麼。在這種情況下,您將一個Action附加到一個新的JMenuItem和JButton,但它不會將其鏈接到Apple應用程序中的複製和粘貼菜單... – 2012-04-15 15:52:13

+2

另請參見本[answer](http:// stackoverflow .com/a/8956715/230513)關於將Java菜單移到Mac菜單欄和關於菜單加速器的[anwser](http://stackoverflow.com/a/10161155/230513)。 – trashgod 2012-04-15 16:39:48

+0

好像你在家裏有一個魔術盒,你從這裏帶來了這些美好的例子:-),給我一個,如果你可以:-) – 2012-06-24 17:41:10