我在监视某个文件的java中有这样的代码:
private Handler mHandler = new Handler();
private final Runnable monitor = new Runnable() {
public void run() {
// Do my stuff
mHandler.postDelayed(monitor, 1000); // 1 second
}
};
Run Code Online (Sandbox Code Playgroud)
这是我的kotlin代码:
private val mHandler = Handler()
val monitor: Runnable = Runnable {
// do my stuff
mHandler.postDelayed(whatToDoHere, 1000) // 1 second
}
Run Code Online (Sandbox Code Playgroud)
我不明白Runnable我应该传递什么mHandler.postDelayed.什么是正确的解决方案?另一件有趣的事情是,当我提供这段代码时,kotlin到java转换器会冻结.
基本上,我有这个游戏,一旦猜到正确答案,它开始一个新单词的新游戏.我想显示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!");
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我的解决方案
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); …Run Code Online (Sandbox Code Playgroud) private class MultipleGensListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
for(int i = 0; i < 25; i++)
{
game.runSimulationOneGen();
changeGrid();
}
}
}
Run Code Online (Sandbox Code Playgroud)
//这是循环.changeGrid方法在GUI上显示游戏网格,但//仅在屏幕上显示第25次迭代.在循环继续之前,我希望每个人都可以看到大约半秒钟.//我在这里看到的一些问题与我提出的问题非常接近,但是我真的不明白如何将它应用到我的程序中... //感谢您的帮助.