看一下这段代码:
public class TestClass {
public long myLong = 1234;
public static void main(String[] args) {
final TestClass test = new TestClass();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
test.doStuff();
}
}, 0, test.myLong);
}
public void doStuff(){
//do stuff here
}
}
/最初是从How to use Timer class to call a method, do something, reset timer, repeat?复制的。
我的问题是:
在执行此代码期间,它是否会挂起整个JFrame
。例如 - 我在我的表单(win1)上放置了一个JTextField
,我想要一些来自用户的随机输入。 JForm
是否能够在此时间范围内接受输入?
感谢。
答案 0 :(得分:0)
是的,它等到doStuf()
完成它的工作并再次调用它。
用它来测试:
static void doStuf() {
Scanner rowInput = new Scanner(System.in);
System.out.print("Enter: ");
String row = rowInput.next();
System.out.println(row);
}
答案 1 :(得分:0)
这取决于您如何构建和运行JFrame。
但是因为Timer
类创建了一个新的线程,所以不会阻止你的JFrame。换句话说,JFrame控件和新的Timer控件运行在两个单独的线程上。
自己测试你的程序并看到行为是很好的......