我有JFrame
,此JFrame
有一个JButton
。
我想在JButton
首先显示JDialog
(显示"Please wait"
)并执行其他代码,然后关闭JDialog
。
但是当显示JDialog
停止执行JButton
上的其他代码时。
答案 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
之类的内容