0

の使用に問題がありJProgressBarます。時間がかかる可能性のある関数があり、関数の実行中に不確定モードの進行状況バーが必要です。setIndeterminate(true)この機能をアクティブにするボタンがあり、関数を呼び出す前に試してみましたが、その後setIndeterminate(false)、プログレスバーがいつでも移動しません。

私はこのコードを持っています:

        progBar.setIndeterminate(true);
        //delay(12);
        //this.setEnabled(false);
        Executor executor = java.util.concurrent.Executors.newSingleThreadExecutor();
        executor.execute(new Runnable() {@Override
            public void run() {
                    function1();

            }});

        //progBar.setIndeterminate(false);
        //progBar.setVisible(false);
        System.out.println("End Function");
        //-........................
    }

function1()また、新しいエグゼキュータなしで試しました。行setIndeterminate(false)にコメントしないと進行状況バーは開始されませんが、コメントすると常に不確定モードになります。

私はいくつかの GUI を設計するために Netbeans IDE を使用していますが、ほとんどのことを自分でコーディングしていることに注意してください (ポジショニングには NetBeans GUI のみを使用しています)。

4

1 に答える 1

1

おそらくこのコードを移動する必要があります。

progBar.setIndeterminate(false);
progBar.setVisible(false);

を呼び出した後、SwingUtilities.invokeLater()ブロックにfunction1()

setIndeterminate(true)現在の設定方法では、呼び出しの直後に実行されます。そのexecute()メソッドはブロックされません。

例えば:

executor.execute(new Runnable() {
        @Override
        public void run() {
                function1();
                // now fix the progress bar
                SwingUtilities.invokeLater(new Runnable() {
                    progBar.setIndeterminate(false);
                    progBar.setVisible(false);
                });
        }});
于 2012-05-27T22:28:02.507 に答える