如何在JTextField上设置焦点?

2022-09-01 10:18:14

我让我的游戏在没有鼠标的情况下运行,所以使用指针不是一个选择。当玩家输球时,将显示高分菜单。

这是我的代码

    highScore=new MyTextField("Your Name");
    highScore.addKeyListener(this);
    highScore.setFont(font);
    highScore.requestFocusInWindow();

我试过

highScore.setFocusable(true);
highScore.requestFocusInWindow();
highScore.requestFocus(true);
highScore.requestFocus();

但仍然没有把重点放在我的.JTextField

如何聚焦?


答案 1

如果您希望在 GUI 出现时保持专注,可以使用以下命令:JTextField

in = new JTextField(40);
f.addWindowListener( new WindowAdapter() {
    public void windowOpened( WindowEvent e ){
        in.requestFocus();
    }
}); 

哪里将是你的,是你的.fJFrameinJTextField


答案 2

如果只有一个顶级容器,则GUI构造函数中的最后一行将是例如

.
.
.
myFrame.setVisible(true);
EventQueue.invokeLater(new Runnable() {

   @Override
     public void run() {
         myComponent.grabFocus();
         myComponent.requestFocus();//or inWindow
     }
});

推荐