1

我正在使用 Java Swing 编写一个 GUI 应用程序。我只有一个问题,那就是我编写了一个大函数,在单击按钮时会执行该函数。首先,我将标签的值设置为“生成报告..”,然后在函数的“返回”部分之前,我将标签的值设置为“完成生成报告”。实际发生的是标签的第一个设置没有生效。它们都在我完成函数调用后生效,因此最终结果只显示“完成生成报告”。

这是我正在使用的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
4

1 回答 1

7

将调用移动generateReport到 a 的方法doInBackgroundSwingWorker。使用方法processdone更新您的 UI 元素。

还可以查看“Swing 中的并发”

于 2013-03-04T15:54:56.937 回答