- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的舞台上,我像往常一样为程序在顶部插入了一个菜单栏。我想在舞台的另一个上下文中给 ALT 键(连同箭头键)一些逻辑。但是每次我按 ALT 和箭头时,我也会无意中浏览菜单栏的菜单。
我想避免这种情况或更好地完全禁用这种助记符行为。
将所有菜单的 mnemonicParsing 属性设置为 false 失败。我也尝试过这种方法但没有成功:
menubar.addEventFilter(KeyEvent.ANY, e -> e.consume());
最佳答案
当按下 ALT 时,第一个菜单获得焦点,当菜单获得焦点时,无论是否按下 ALT,箭头键都会在其中导航。因此,为了防止这种行为,您需要防止按下 ALT 时第一个菜单获得焦点。
看着MenuBarSkin
类的构造函数源代码,给了我们解决方案:
public MenuBarSkin(final MenuBar control) {
...
Utils.executeOnceWhenPropertyIsNonNull(control.sceneProperty(), (Scene scene) -> {
scene.getAccelerators().put(acceleratorKeyCombo, firstMenuRunnable);
// put focus on the first menu when the alt key is pressed
scene.addEventHandler(KeyEvent.KEY_PRESSED, e -> {
if (e.isAltDown() && !e.isConsumed()) {
firstMenuRunnable.run();
}
});
});
...
}
scene
不是
menubar
:
scene.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
// your desired behavior
if(event.isAltDown())
event.consume();
}
});
关于javafx - 如何禁用 JavaFX MenuBar 的助记符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36009964/
我在 View 中使用“访问键”功能(通过按 ALT + First char of label 我可以“跳转”到该字段): 按 ALT + m焦点应该跳转到“邮件”字段。 但是我有一条色带在使用,按
我有一个 JFrame 和一些 JButtons、JLabels 和一个 JTextfield。我需要创建一个键盘快捷键,以便在按下该快捷键时,JTextfield 获得焦点。 我该怎么做? 谢谢 最
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我有一个使用 JMenu 创建的菜单。我想为这个菜单分配一个快捷键 Alt-F。我使用 setMnemonic('F') 来做到这一点,但菜单无法识别助记符。 解决或调试此问题的最佳方法是什么?我发现
我对此很陌生。我试图以清晰的方式理解上述术语之间的区别,但是,我仍然感到困惑。这是我发现的: 在计算机汇编语言中,助记符是操作的缩写。它被输入到每个汇编程序指令的操作码字段中。例如 AND AC,37
这个问题在这里已经有了答案: Test whether a register is zero with CMP reg,0 vs OR reg,reg? (2 个答案) 关闭 5 年前。 在Shel
我正在尝试使 JavaFX 助记符工作。我在场景中有一些按钮,我想要实现的是通过按 Ctrl+S 来触发这个按钮事件。 这是一个代码 sceleton: @FXML public Button btn
做什么: ORRS R1、R3 做什么? 是否只是 R1 |= R3,可能设置 N- 或 Z 标志? 这可能是显而易见的,但我还没有找到任何描述 ORR 助记符没有操作数 2 的文档。 非常感谢您的反
有人可以向我解释为什么融合乘法累加指令有 3 种变体:vfmadd132pd , vfmadd231pd和 vfmadd213pd ,而只有一个 C 内在函数 _mm256_fmadd_pd ? 为了
我是一名优秀的程序员,十分优秀!