在JFrame上显示JDialog(“Please Wait”)

时间:2012-01-08 07:41:33

标签: java swing jframe jdialog

我有JFrame,此JFrame有一个JButton

我想在JButton首先显示JDialog(显示"Please wait")并执行其他代码,然后关闭JDialog

但是当显示JDialog停止执行JButton上的其他代码时。

4 个答案:

答案 0 :(得分:5)

Thread上开始其他处理(例如在SwingWorker中)并在其开始时调用modalDialog.setVisible(true)。在任务结束时调用setVisible(false)

答案 1 :(得分:5)

我建议创建一个简单的JDialog,然后在代码运行后处理它。您可以使用以下代码创建JDialog:

JDialog dialog = new JDialog();
JLabel label = new JLabel("Please wait...");
dialog.setLocationRelativeTo(null);
dialog.setTitle("Please Wait...");
dialog.add(label);
dialog.pack();

并按照以下方式实施:

dialog.setVisible(true); // show the dialog on the screen

        // Do something here

dialog.setVisible(false); // set visibility to false when the code has run

答案 2 :(得分:2)

也许jdialog处于模态模式,尝试更改jdialog的模态属性:yordialog.setModal(false)

答案 3 :(得分:1)

它已停止,因为您正在使用“MAIN-Thread”来执行代码并显示JDialog。

要解决此问题,您应该查看SwingWorker

之类的内容