2012-04-15 65 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