我必须在OSX上使用Windows L& F中的一个作为我的Java应用程序。不幸的是,我无法将L& F更改为任何Apple兼容产品。
使用Windows热键(ctrl + c而不是cmd + c等)非常不方便。可能存在" hack"这允许我全局使用命令键而不是控制(cmd - > ctrl)在Windows L& F的热键中(不希望覆盖每个控件的键绑定)?
如果有问题我会使用JGoodies Looks。
答案 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);
}