好的,所以我们的任务是创建一个猜测游戏,用户输入一个数字,文本前景应该变为红色,如果它太高,蓝色,如果它太低,或绿色,如果它是确切的。
我们的老师发布的代码就是这样做的,而且非常简单,我能理解它。问题是,当我尝试重新格式化它以获得我需要的JFrame
时,我得到了可以输入它的文本字段,但是当我点击提交它就像冻结一样。我想它与动作监听器的编写方式有关,但我不确定。
任何帮助都会受到赞赏。
这是我的代码,经过编辑,只显示特定部分"
button.addActionListener(
new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
userInput = keyboard.next();
if(Integer.parseInt(userInput) > randomNumber)
{
tf.setForeground(Color.red);;
}
else if(Integer.parseInt(userInput) < randomNumber)
{
tf.setForeground(Color.blue);
}
else if(Integer.parseInt(userInput) == randomNumber)
{
tf.setForeground(Color.green);
}
}
}
);
}
答案 0 :(得分:5)
while(true)
这就是问题所在。不要阻止EDT(Event Dispatch Thread)。 GUI将会冻结&#39;当发生这种情况时有关详细信息和修复,请参阅Concurrency in Swing。