跨平台外观的快捷键绑定(金属 l&f)

Shortcut key bindings for cross platform look & feel(metal l&f)

我正在阅读有关跨平台外观和感觉的信息,即在所有平台上看起来都一样的金属 L&f。我想知道这个 l&f 的快捷键是什么。我面临一个问题,在 MAC OS 中,如果我必须 copy/paste 我必须使用 window 快捷方式(ctrl + v/c)来 copy/paste actions.I 无法使用 mac 快捷方式 (cmd+v/c)。我想知道这是否可能是由于 l&f。请提前help.Thanks。

是的,外观可以做到这一点。你可以做的一件事,我希望有人有更好的答案,就是为你想要不同行为的组件设置输入映射。下面是对文本字段使用平台默认输入映射的方法。

public static void startGui(){
    try{
        LookAndFeel aqua = UIManager.getLookAndFeel(); //aqua
        UIDefaults def = UIManager.getDefaults();
        Object b = def.get("TextField.focusInputMap");
        UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
        UIDefaults def2 = UIManager.getDefaults();
        def2.put("TextField.focusInputMap", b);
    }catch(Exception e){
        e.printStackTrace();
    }

    JFrame frame = new JFrame("title");

    JTextField field = new  JTextField();
    frame.add(field);
    frame.setSize(640, 480);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}
public static void main(String[] args) throws Exception {
    EventQueue.invokeLater( ()->startGui() );
}

如果你 运行 那个,那么 cmd+v 应该粘贴,但是如果你推荐行 def2.put(...) 然后 ctrl+v 将粘贴。

已在 OSX.

上使用 jdk11 进行验证