2

マルチプレイヤー ゲームを開発しています。メニューに、プレイヤーがホスト 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");
        }
    });

フォーカスが得られたときは表示されますが、テキストフィールドがフリーズすると、フォーカスが失われたことについては何も表示されません。テキストフィールドをクリックするだけで他の機能を使用できますが、入力を開始するとフリーズします。

理由を知っている人はいますか?

4

0 に答える 0