【发布时间】:2015-02-03 21:05:32
【问题描述】:
好的,所以我们的任务是创建一个猜谜游戏,用户输入一个数字,如果它太高,文本前景应该变为红色,如果太低,则变为蓝色,或者如果准确则变为绿色.
我们的老师已经发布了执行此操作的代码,并且非常简单,我可以理解。问题是,当我尝试根据需要重新格式化它时,我得到了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);
}
}
}
);
}
【问题讨论】:
-
不要混用控制台输入和 GUI 输入,那样会让人困惑
-
您仍在从控制台获取信息。同样,不要这样做。
标签: java swing jframe jtextfield event-dispatch-thread