基本上,我有这个游戏,一旦猜出正确答案,它就会以一个新单词开始一个新游戏。我想显示,Correct!
但是三秒钟后,将其更改为空字符串。我怎么做?
我的尝试:
if (anagram.isCorrect(userInput.getText()))
{
anagram = new Anagram();
answer.setText("CORRECT!");
word.setText(anagram.getRandomScrambledWord());
this.repaint();
try
{
Thread.currentThread().sleep(3000);
}
catch (Exception e)
{
}
answer.setText("");
} else
{
answer.setForeground(Color.pink);
answer.setText("INCORRECT!");
}
编辑:
我的解决方案:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
if (anagram.isCorrect(userInput.getText()))
{
answer.setText("CORRECT!");
ActionListener taskPerformer = new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
anagram = new Anagram();
word.setText(anagram.getRandomScrambledWord());
answer.setText("");
userInput.setText("");
}
};
Timer timer = new Timer(3000, taskPerformer);
timer.setRepeats(false);
timer.start();
} else
{
answer.setForeground(Color.pink);
answer.setText("INCORRECT!");
}
}
我不确定,但是我希望我遵循MadProgrammer的建议,而不是阻止事件本身,而是阻止新线程。我还将查找Java Timer。
摇摆是事件驱动的环境。当您阻止事件调度线程时,无法处理任何新事件。
您切勿在任何耗时的过程(例如I / O,循环等)中阻塞EDT Thread#sleep
。
您可能希望通读事件分发线程以获取更多信息。
相反,您应该使用javax.swing.Timer
。ActionListener
给定延迟后,它将触发一个。
这样做的好处是该actionPerformed
方法是在事件调度线程的上下文中执行的。
查看这个或这个或这个或这个示例
问题内容: 我创建了基于 HTML: JS: 如您所见,我尝试通过2种方式在3秒后更改为,但没有人为我工作。真的很奇怪 我错过了什么? 实际上,我尝试在从Ajax获得响应后更改值,但是假设应该是相同的问题。 谢谢, 这是我的示例:http : //jsfiddle.net/6uKAT/20/ 问题答案: 尝试使用: Angular的window.setTimeout包装。fn函数包装在try /
问题内容: 我试图 建立一个解释器,所以我想知道如何 实时更改文本的颜色。例如,我在文本字段中输入的单词是: 几秒钟后,单词变成绿色。 可能吗? 问题答案: package test;
问题内容: 我有创建的这种方法,每秒向我的andengine场景添加一个精灵。 例如,我想做的是 我遇到的问题是更改变量时。我想不通一种更新TimeHandler的方法,让它知道更改mEffectSpawnDelay变量。 有什么建议? 问题答案: 我刚刚为您创建了此类。我认为它应该起作用,并且您可以根据需要更改刻度之间的间隔。(尚未测试,因此您可能需要进行一些小的修复。但这在IMO上看起来还不错
问题内容: 我需要在循环中对数据库进行SQL查询: 更好的方法是:保持原样或循环后移动: 或者是其他东西 ? 问题答案: 整个要点是直到函数返回才执行,因此将其放置在要关闭的资源打开后的适当位置。但是,由于要在循环内创建资源,因此根本不要使用defer- 否则,在函数退出之前,您不会关闭在循环内创建的任何资源,因此它们会堆积直到然后。相反,您应该在每次循环迭代结束时关闭它们, 而无需 :
我开始为一个项目制作这个网页,到目前为止是这样的: 但是我想把文本区域放在另一个上面,而不是并排放置 我希望它看起来怎么样: 谁能帮帮我吗 https://i.stack.imgur.com/ZzsKS.png
问题内容: 我正在尝试使用新的React Lazy和Suspense创建后备加载组件。这很好用,但后备时间仅显示几毫秒。有没有办法增加额外的延迟或最短时间,因此我可以在渲染下一个组件之前显示该组件的动画? 现在懒导入 等待组件: 我可以做这样的事情吗? 问题答案: 函数应该返回对象的承诺,该对象由具有默认导出功能的模块返回。不会返回承诺,也不能那样使用。尽管任意承诺可以: 如果目标是提供 最小的