定时器类。在不挂起JForm的情况下接受来自用户的输入

时间:2014-04-12 11:18:23

标签: java

看一下这段代码:

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是否能够在此时间范围内接受输入? 感谢。

2 个答案:

答案 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控件运行在两个单独的线程上。

自己测试你的程序并看到行为是很好的......