マルチプレイヤー ゲームを開発しています。メニューに、プレイヤーがホスト IP を入力できるフィールドを追加する必要があります。
Graphics2D でメニューを作成しており、ループで更新しています。
JFrame screenFrame = screen.getFullScreenWindow();
while (menuIsRunning) {
Graphics2D g = screen.getGraphics();
renderer.drawMenu(g, screen.getWidth(), screen.getHeight(), menuObjects);
screenFrame.getLayeredPane().paintComponents(g);
g.dispose();
screen.update();
}
そして、次のように JTextField も追加したいと思います。
Container contentPane = screenFrame.getContentPane();
contentPane.setLayout(null);
JTextField text = new JTextField("Enter text here", 28);
contentPane.add(text);
text.setBounds(10,10,20,20);
screenFrame.validate();
そして、画面に表示されますが、入力していると、数秒後にフリーズするか、何かが発生します(エラーメッセージは表示されません)。もう入力できず、他のすべてのキーアクションも機能しません (エスケープのように: ゲームを終了します)
私は focusListener で何かを見ようとしました:
text.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
System.out.println("focus gained");
}
@Override
public void focusLost(FocusEvent e) {
System.out.println("focus lost");
}
});
フォーカスが得られたときは表示されますが、テキストフィールドがフリーズすると、フォーカスが失われたことについては何も表示されません。テキストフィールドをクリックするだけで他の機能を使用できますが、入力を開始するとフリーズします。
理由を知っている人はいますか?