0

JDialogプログレスバー付きのシンプルなものがあり、次のようにしたいJLabel

働く。--> 作業中.. --> 作業中...

約 0.25 秒ごと。

JLabelのテキストを設定して連続ループを繰り返し実行しますか?

これは簡単な解決策に違いないことはわかっていますが、どこにも見つからないようです!

以下の@Davidの応答ごと。これが私の WorkingDialog (JDialog を拡張する) コンストラクターの大部分です。

    final JLabel lblWorking = new JLabel("Working.");
    contentPanel.add(lblWorking, gbc_lblWorking);

    SwingWorker<Void, Void> sw = new SwingWorker<Void, Void>()
    {

        @Override
        protected Void doInBackground() throws Exception
        {
            while (!isCancelled())
            {
                if (!lblWorking.getText().equals("Working..."))
                {
                    lblWorking.setText("Working.");
                } else
                {
                    lblWorking.setText(lblWorking.getText() + ".");
                }
            }

            return null;
        }
    };

    setVisible(true);
    sw.run();

そして、 new WorkingDialog() を呼び出すと、フレームが表示されますが、それだけです。誰かが理由を知っていますか?

ありがとう、

リッチ

4

1 に答える 1

0

0.25 秒ごとにラベルを更新するデーモンを作成します。ラベルを更新するときは、SwingUtils.invokeLater() を使用することを忘れないでください。

SwingWorkerでもできるはずです。

乾杯

于 2013-07-23T19:14:28.503 に答える