【问题标题】:Timer Class. Accepting Input from user without hanging the JForm定时器类。接受用户输入而不挂起 JForm
【发布时间】:2014-05-26 14:48:35
【问题描述】:

看看这段代码:

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

【问题讨论】:

    标签: java


    【解决方案1】:

    是的,它会等到doStuf() 完成它的工作并再次调用它。 用这个测试它:

        static void doStuf() {
            Scanner rowInput = new Scanner(System.in);
            System.out.print("Enter: ");
            String row = rowInput.next();
            System.out.println(row);
        }
    

    【讨论】:

      【解决方案2】:

      这取决于您如何构建和运行 JFrame。 但是因为Timer 类创建了一个新线程,所以不会阻塞你的JFrame。换句话说,JFrame 控件和新的 Timer 控件运行在两个单独的线程上。

      最好自己测试你的程序并查看行为...

      【讨论】:

        猜你喜欢
        • 2019-12-06
        • 1970-01-01
        • 2016-03-17
        • 1970-01-01
        • 1970-01-01
        • 2018-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多