【发布时间】:2012-12-22 22:25:27
【问题描述】:
我有一个 GUI,它在处理动作事件时锁定了 GUI,所以我需要一个进度条来显示。我可以让JDialog 显示,但进度条不会显示。我使用了SwingUtilities.invokeLater() 和invokeAndWait() 但无济于事。进度条不会显示。任何提示或帮助将不胜感激。
pb = new JProgressBar(0, 100);
pb.setPreferredSize(new Dimension(175, 40));
pb.setString("Working");
pb.setStringPainted(true);
JLabel label = new JLabel("Progress: ");
JPanel center_panel = new JPanel();
center_panel.add(label);
center_panel.add(pb);
dialog = new JDialog((JFrame) null, "Working ...");
dialog.getContentPane().add(center_panel, BorderLayout.CENTER);
dialog.pack();
dialog.setLocationRelativeTo(this); // center on screen
dialog.toFront(); // raise above other java windows
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
dialog.setVisible(true);
pb.setIndeterminate(true);
}
});
Thread.sleep(5000);
template = AcronymWizardController
.sharedInstance().readAndDislpayDocx(contdFile);
parseDocxText(contdFile);
pb.setIndeterminate(false);
savedFile.setText(contdFile.toString());
dialog.dispose();
【问题讨论】:
-
@JBNizet 这与这里提出的大约一半的 Swing 问题重复 ;)
-
@MadProgrammer:确实如此。这使得再次问它变得更糟,因此我投票赞成。我想知道怎么可能找不到答案。我链接到的重复问题是右侧“相关”部分中的第一个问题。
-
@JBNizet Hay,你得到了我的 +1 ;)
标签: java swing jdialog jprogressbar