【问题标题】:How to completly disable focus system如何完全禁用对焦系统
【发布时间】:2015-07-04 00:25:18
【问题描述】:

我想在 JavaFX 应用程序中禁用焦点系统。这意味着没有焦点遍历,没有控件可以接收焦点,因此它永远不会有相应的图形装饰,也永远不会接收键盘事件。所有键盘事件都应该被根节点(或阶段)捕获和处理。

我应该扩展/重写什么来禁用焦点系统?

【问题讨论】:

  • 要消除焦点突出显示,请参阅 good4em's answer 并在样式表的 .root 中设置这些值。
  • 那么第二个要求呢?
  • 我对此没有任何建议,这就是为什么我只提供评论而不提供答案。

标签: javafx focus


【解决方案1】:

要处理根节点中的所有键盘事件,请执行以下操作

root.addEventFilter(KeyEvent.ANY, e -> {
    // handle keyboard event...
    e.consume();
});

【讨论】:

  • 看起来像黑客。重新定义 Scene.keyHandler 和 Scene.requestFocus 之类的东西似乎更加严格
  • 我不认为这是一个 hack;这正是 API 的预期用途。
猜你喜欢
  • 2012-12-21
  • 2012-10-10
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多