1

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
4

1 に答える 1

7

への呼び出しをagenerateReportのメソッドに移動します。メソッドとを使用して、UI 要素を更新します。doInBackgroundSwingWorkerprocessdone

「Swing の同時実行」も参照してください。

于 2013-03-04T15:54:56.937 に答える