将JTextField添加到游戏菜单(graphics2d)

时间:2013-10-29 08:19:56

标签: java jtextfield graphics2d

我正在开发一个多人游戏,在菜单中,我需要添加一个字段,玩家可以在其中键入host-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");
        }
    });

它表示当焦点获得时,但当文本字段冻结时,它没有说明焦点丢失的任何内容。 如果我只是在文本字段中单击,我仍然可以使用其他功能,但是当我要求输入时它会冻结。

有人知道为什么吗?

0 个答案:

没有答案