当前位置: 首页 > 面试题库 >

Nimbus LAF的Mac键盘快捷键

甄云
2023-03-14
问题内容

有没有办法在OS X上使用Nimbus LAF(外观和感觉),同时仍然可以使用该Meta键进行剪切/复制/粘贴和全选操作?

目前,我的Swing应用程序的main方法中包含以下代码,该代码根据操作系统更改LAF(OS X的默认设置,所有其他操作系统的Nimbus设置):

if (!System.getProperty("os.name", "").startsWith("Mac OS X")) {
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(LicenseInspectorUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(LicenseInspectorUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(LicenseInspectorUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(LicenseInspectorUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
}

我这样做是一种变通方法,因为Nimbus会覆盖OS
X上用于剪切/复制/粘贴和全选的键盘快捷键(Meta键与Ctrl键)。如果不改写键盘快捷键,我宁愿一直使用Nimbus。


问题答案:

使用此getMenuShortcutKeyMask()方法可以NimbusLookAndFeel启用密钥,如本示例所示。另请参阅此相关答案。

在特定的情况下JTextField,您可以在引起原始动作的按键绑定中使用掩码。

int MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
JTextField jtf = new JTextField("Test");
jtf.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_A, MASK), "select-all");
jtf.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_C, MASK), "copy");
jtf.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_X, MASK), "cut");
jtf.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_V, MASK), "paste");


 类似资料:
  • 主要内容:Windows 和 Mac 的键盘快捷键,基本的快捷键,文本编辑,Web 浏览器,屏幕截图通过使用键盘快捷键可以节省时间。 Windows 和 Mac 的键盘快捷键 在现代操作系统中和计算机软件程序中,键盘快捷键经常被使用。 使用键盘快捷键能帮您节省很多时间。 基本的快捷键 描述 Windows Mac OS 编辑菜单 Alt + E Ctrl + F2 + F 文件菜单 Alt + F Ctrl + F2 + E 视图菜单 Alt + V Ctrl + F2 + V 全选文本 Ctr

  • 配置本地和全局键盘快捷键 本地快捷键 您可以使用Menu模块来配置仅在应用程序集中时才触发的键盘快捷键。为此,在创建MenuItem时务必指定[`accelerator]属性。 1 const {Menu, MenuItem} = require('electron') 2 const menu = new Menu() 3 ​ 4 menu.append(new MenuItem({ 5 lab

  • 配置本地和全局键盘快捷键 Keyboard Shortcuts Configure local and global keyboard shortcuts 本地快捷键 您可以使用 [Menu] 模块来配置快捷键,只有在 app 处于焦点状态时才可以触发快捷键。 为此,在创建 MenuItem时必须指定一个 [accelerator] 属性。 const { Menu, MenuItem } = r

  • 键盘快捷键 控制台配备了一套非常方便的键盘快捷键,使其工作效率更高。下面是一段概述: 一般编辑 Ctrl/Cmd + I 当前请求自动缩进。 Ctrl + Space 打开自动补全 (即使没有打字也可以)。 Ctrl/Cmd + Enter 提交请求。 Ctrl/Cmd + Up/Down 跳转到上一个/下一个请求的开始或结束。 Ctrl/Cmd + Alt + L 折叠或展开当前代码块。 Ctr

  • 概览 该功能允许你为 Electron 应用程序配置应用和全局键盘快捷键。 示例 本地快捷键 应用键盘快捷键仅在应用程序被聚焦时触发。 为了配置本地快捷键,你需要在创建Menu模块中的MenuItem时指定accelerator属性。 Starting with a working application from the Quick Start Guide, update the main.js

  • 问题内容: 如果有人按字母,该如何触发事件g? (所有字母BTW的字符映射在哪里?) 问题答案: jQuery Hotkeys使你可以在代码中的任何地方监视键盘事件,从而支持几乎任何按键组合。 要将Ctrl+ 绑定c到函数(f),例如: