为什么JLabel被卡住而不用setText更新?

时间:2019-05-19 07:48:36

标签: java jlabel settext

我正试图在调用有时很长的过程之前(请检查给定数字是否为质数),用消息“正在计算...”更新JLabel。在此过程之后,JLabel已成功更新为结果。问题是永远不会显示“正在计算...”消息,并且程序会在计算过程完成之前卡住。

在计算过程中,用户不应做任何事情,因此我认为SwingWorker或使用线程不会帮助解决这种情况(或者我错了吗?)。

这是代码段:

function() {
    resultsLabel.setText(null); // Not working
    resultsLabel.setText("Calculating..."); // Not working
    System.out.println("test"); // It works

    // Now program is about to get stuck

    result = isPrime(n); // Long process

    // Program gets unstuck

    resultsLabel.setText(null); // It works
    resultsLabel.setText(result); // It works
}

我也尝试过:

resultsLabel.setText(null); // Not working
resultsLabel.setText("Calculating..."); // Not working
System.out.println("test"); // It works

function() {
    System.out.println("test"); // It works

    // Now program is about to get stuck

    result = isPrime(n); // Long process

    // Program gets unstuck

    resultsLabel.setText(null); // It works
    resultsLabel.setText(result); // It works
}

但是,再次没有运气。

这里有什么问题的想法吗?

预先感谢您的宝贵帮助。

0 个答案:

没有答案