当前位置: 首页 > 知识库问答 >
问题:

JavaFX-Accelerator在textfield有焦点时不工作

秦博延
2023-03-14

在我的应用程序中,我有一个使用加速器的屏幕。我使用功能键F3在我的应用程序中执行一个操作。它每次都工作得很好,但是当我在这个屏幕上单击任何文本字段时,功能键都不执行。

    scene.getAccelerators().put(
            new KeyCodeCombination(KeyCode.F3),
            new Runnable() {
                @Override
                public void run() {
                    // do sth here
                }
            }
    );

当我单击textfield然后按F3功能键时,它不起作用。有人知道解决办法?

共有1个答案

宦瀚
2023-03-14

对于使用Java1.8.0_45的我来说,这是可行的。然而,我在可编辑组合框字段中遇到了类似的问题。

编辑:

在进一步的研究中,它似乎也发生在文本字段中。我使用以下自定义类代替文本字段来解决这个问题:

public class ShortcutFriendlyTextField extends TextField{

    public ShortcutFriendlyTextField() {
        super();
        addEventHandler(KeyEvent.KEY_RELEASED,new EventHandler<KeyEvent>() {

            @Override
            public void handle(KeyEvent event) {
                //handle shortcuts if defined
                Runnable r=getScene().getAccelerators().get(new KeyCodeCombination(event.getCode()));
                if(r!=null) {
                    r.run();  
                }
            }
        }); 
    }
}
 类似资料:
  • 我正在使用构建组件,其中我有一个文本字段列表。 我在redux中存储数据。 每个保留每个

  • 我尝试在我的项目中使用伪类。我想改变我点击它的元素的颜色。现在,当我点击我的元素时,只在它处于活动状态的地方改变颜色,鼠标上移后,它就会返回到原来的颜色。第二次点击后,我想让它回到原来的颜色。我用的是铬。 此处演示 null null

  • 我在我的应用程序中使用,我在里面使用了,当我按下添加更多按钮时需要关注按钮。 示例代码 JavaScript xhtml Java语言 在这里,上面的代码可以很好地按照我的预期聚焦最后添加的selectOneMenu,但浏览器滚动条不会在聚焦最近添加的selectOneMenu组件的基础上向下移动。 请帮我解决这个问题。

  • 问题内容: 我使用Java中的Swing创建了一种表单。在表单中,我使用了一个文本字段,每当我按下该键时都必须在该文本字段上设置焦点。如何在Java中的特定组件上设置焦点? 问题答案: 请问给你你需要什么?

  • 我有一个和一个。点击按钮,我想打开键盘,同时请求关注,以便用户直接开始在键盘上键入文本,并出现在中。但是在我的例子中,当我点击按钮时,它会打开键盘,但它不会将焦点设置在上,因为用户必须再次单击才能在上面写入。问题是什么。任何帮助或建议。 单击按钮时的代码

  • 在使用JavaFX时,我发现焦点边框在一些可视化节点上存在障碍,比如按钮和某些窗格。关于这个主题的其他问题经常建议在样式文件中添加以下css(覆盖modena.css的默认值,JavaFX8的默认样式表): 我还发现,这个背景色来自前面提到的绘制边框的属性。因此,将颜色设置为透明会产生意想不到的效果,即某些节点(如窗格、组合框等)在不聚焦时显示边框,但在聚焦时不再显示边框,这是由于伪类的背景色派生