gpt4 book ai didi

java - 具有自定义类的 getFocusOwner

转载 作者:搜寻专家 更新时间:2023-11-01 03:13:39 25 4
gpt4 key购买 nike

我需要有关 getFocusOwner() 的帮助。我有一个用 Java 制作的数独游戏,我想在程序中添加箭头键导航。我做了一些研究,发现使用焦点系统是最好的方法(如果不是,请给我一个更好的方法,我可以研究一下)。

好的,出于测试目的,我尝试将焦点设置到 SetField,这是一个扩展 JTextField 的自定义类(自定义,因为我想禁用任何非数字输入)。它已设置为可聚焦。我在网格中间的 SetField 上调用了 requestFocusInWindow(),并将焦点设置到该组件。当我尝试检索具有焦点的组件时出现问题。

这是我正在做的测试 getFocusOwner() 方法的方法:

sGrid[40].requestFocusInWindow();

try{
System.out.println(this.getFocusOwner().getClass().getSimpleName());
} catch(NullPointerException e){
e.printStackTrace();
}

无论我在哪个组件上尝试这个,我总是得到空指针异常。我尝试使用 JButtons、JLabels,甚至在我程序中的 JPanels 上。虽然焦点设置到组件。我可以看到插入符号在预期的 SetField 中闪烁。我做错了什么吗?在此先感谢您的帮助。

最佳答案

  1. 不是只允许数字的自定义组件,而是我们一个 JFormattedTextField。
  2. 您是否需要确定哪个组件具有焦点,为什么不添加 KeyListener、MouseListener?我不太确定你用焦点做什么,但这看起来很奇怪。

关于java - 具有自定义类的 getFocusOwner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4653444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com