我正试图在调用有时很长的过程之前(请检查给定数字是否为质数),用消息“正在计算...”更新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
}
但是,再次没有运气。
这里有什么问题的想法吗?
预先感谢您的宝贵帮助。