跨平台外观和感觉(金属外观)的快捷键绑定

问题描述 投票:1回答:1

我正在阅读跨平台外观,即在所有平台上看起来都一样的金属L&f。我想知道此L&F的快捷键是什么。我遇到一个问题,在MAC OS中,如果必须复制/粘贴,我必须使用窗口快捷方式(ctrl + v / c)进行复制/粘贴操作。我无法使用mac快捷方式(cmd + v / C)。我想知道是否可能是由于L&F。请帮助。谢谢。

java macos swing look-and-feel
1个回答
0
投票

是的,外观可以做到这一点。您希望做的一件事是希望为您希望行为有所不同的组件设置输入映射,希望有人能提供更好的答案。这是一种将平台默认输入映射用于文本字段的方法。

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验证。

© www.soinside.com 2019 - 2024. All rights reserved.