我有一个简单的JDialog
,其中包含一个进度条,我希望它有一个JLabel
,如下所示:
工作。 - >工作.. - >工作...
大约每0.25秒。
我是否只是连续循环设置JLabel
的文字?
我知道这必须是一个简单的解决方案,但我似乎无法在任何地方找到它!
Per @ 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();
当我调用新的WorkingDialog()时,框架会出现,但就此而言。有谁知道为什么?
谢谢,
富
答案 0 :(得分:0)
创建一个守护程序,每隔0.25秒更新一次标签。不要忘记在更新标签时使用SwingUtils.invokeLater()。
我猜你也应该能够使用SwingWorker。
干杯