31

私はマウスなしでゲームを実行するので、ポインターを使用することは選択できません。プレーヤーが負けると、ハイスコアメニューが表示されます。

これは私のコードです

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

私が試してみました

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

しかし、それでも私のことに焦点を当てることはできませんJTextField

焦点を合わせる方法は?

4

10 に答える 10

60

GUI が表示されたときに集中したい場合JTextFieldは、これを使用できます。

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

あなたはどこにいて、fあなたはあなたです。JFrameinJTextField

于 2011-07-17T10:42:31.737 に答える
8

トップレベル コンテナが 1 つしかない場合、GUI コンストラクタの最後の行は次のようになります。

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

   @Override
     public void run() {
         myComponent.grabFocus();
         myComponent.requestFocus();//or inWindow
     }
});
于 2011-07-17T10:49:20.843 に答える
0

私の場合、コンストラクターが戻った後にrequestFocus() を呼び出すまで、上記の何も機能しませんでした。

MyPanel panel = new MyPanel(...);
frame.add(panel);
panel.initFocus();

MyPanel.initFocus() は次のようになります。

myTextField.requestFocus();

そして、それは機能します。

于 2016-02-15T21:10:32.290 に答える