我必須使用Windows L & F之一爲OSX上我的Java應用程序。不幸的是,我無法將L & F更改爲任何Apple兼容。Java:OSX下的Windows L&F。替代ctrl命令
使用Windows熱鍵(ctrl + c而不是cmd + c等)非常不方便。可能存在一個「黑客」,允許我全局使用命令鍵而不是控制(cmd - > ctrl)在窗口的熱鍵L & F(不希望覆蓋每個控件的鍵綁定)?
如果有問題,我使用JGoodies Looks。
我必須使用Windows L & F之一爲OSX上我的Java應用程序。不幸的是,我無法將L & F更改爲任何Apple兼容。Java:OSX下的Windows L&F。替代ctrl命令
使用Windows熱鍵(ctrl + c而不是cmd + c等)非常不方便。可能存在一個「黑客」,允許我全局使用命令鍵而不是控制(cmd - > ctrl)在窗口的熱鍵L & F(不希望覆蓋每個控件的鍵綁定)?
如果有問題,我使用JGoodies Looks。
發現我已經看過了:
if (Desktop.getDesktop().isMacOSX()){
// see MetalLookAndFeel class for details
String[] keys = {"TextField.focusInputMap", "PasswordField.focusInputMap", "TextArea.focusInputMap", "TextPane.focusInputMap", "EditorPane.focusInputMap", "FormattedTextField.focusInputMap"};
// , "List.focusInputMap", "Table.ancestorInputMap", "Tree.focusInputMap"};
for(String item : keys){
InputMapUIResource map = (InputMapUIResource) UIManager.get(item);
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.META_MASK), DefaultEditorKit.copyAction);
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.META_MASK), DefaultEditorKit.pasteAction);
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.META_MASK), DefaultEditorKit.selectAllAction);
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.META_MASK), DefaultEditorKit.cutAction);
}
這適用於Mac OS X,但不適用於Windows;相反,使用'getMenuShortcutKeyMask()'作爲[示例](http://stackoverflow.com/a/8105344/230513)。 – trashgod
@trashgod:我無法得到你的提示。我已經在使用Windows L&F來完成Windows上的所有工作。我需要以某種方式「調整」它,以便OS X至少使用本機OS X的複製/剪切/粘貼操作。這就是我在代碼中所做的。我可以使用'getMenuShortcutKeyMask()'而不是'KeyEvent.META_MASK',但這會改變任何事情。請解釋你的觀點。 – FoxyBOA
下面是一個更具體的[示例](http://stackoverflow.com/a/9781578/230513)。 – trashgod
可能的[複製](http://stackoverflow.com/q/8105081/230513)。 – trashgod
不是,它不是重複的。我的問題更一般。答案只與菜單項有關。 – FoxyBOA
您也可以在密鑰綁定中使用'getMenuShortcutKeyMask()'。 –