我正在使用 Java Swing 编写一个 GUI 应用程序。我只有 1 个问题,那就是我编写了一个大函数,单击按钮时会执行该函数。起初我将标签的值设置为“生成报告..”然后就在函数的“返回”部分之前我将标签的值设置为“完成生成报告”。实际发生的是标签的第一个设置没有生效。它们都在我完成函数调用后生效,因此最终结果只显示“完成生成报告”。
这是我使用的java代码:
protected void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
try
{
jLabel6.setText("Generating Report");
jProgressBar1.setVisible(true);
generateReport(BillImportId.getText()); // This will take around 30 seconds to finish
}
catch (Exception e)
{
System.out.println("Exception occured: " + e);
}
}//GEN-LAST:event_jButton2ActionPerformed
最佳答案
将对 generateReport
的调用移动到 SwingWorker
的方法 doInBackground
中。使用方法 process
和 done
更新您的 UI 元素。
关于java - 在 Java Swing 中编码时出现延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15205519/