0

我有一个简单JDialog的进度条,我希望它有一个JLabel像这样的:

在职的。--> 工作中.. --> 工作中...

大约每 0.25 秒。

我会只是运行一个连续循环重复设置JLabel's 文本吗?

我知道这一定是一个简单的解决方案,但我似乎无法在任何地方找到它!

根据@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 回答