Java:OSX下的Windows L& F.将ctrl替换为命令

时间:2015-09-04 09:08:28

标签: java macos swing look-and-feel

我必须在OSX上使用Windows L& F中的一个作为我的Java应用程序。不幸的是,我无法将L& F更改为任何Apple兼容产品。

使用Windows热键(ctrl + c而不是cmd + c等)非常不方便。可能存在" hack"这允许我全局使用命令键而不是控制(cmd - > ctrl)在Windows L& F的热键中(不希望覆盖每个控件的键绑定)?

如果有问题我会使用JGoodies Looks

1 个答案:

答案 0 :(得分:0)

找到了我所寻找的内容:

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);
    }