java - 为什么不会让 DialogWait Box 自动关闭?
问题描述
所以我希望这个对话框在wait1.close()
被调用时关闭,但它不会消失。我必须手动点击“X”按钮来关闭它并让程序继续下一步。有什么建议么?我能够以与我之前的代码相同的方式实现一个对话框,但由于某种原因,该实现在这里不起作用。谢谢!
这是它被使用的地方
final ArrayList<ArrayList<Booking>> allAvailablePaths1 =allAvailablePaths;
DialogWait wait1=new DialogWait();
SwingWorker<Void,Void> mySwingWorker1=new SwingWorker<Void, Void>(){
@Override
protected Void doInBackground() throws Exception{
sort(x,allAvailablePaths1, paths);
wait1.close();
System.out.println("This line is printed");
return null;
}
};
mySwingWorker1.execute();
wait1.makeWait("Thank You For Your Patience");
return paths;
}
这是我的 DialogWait 课程
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class DialogWait {
private JDialog dialog;
public void makeWait(String msg) {
JFrame frame=new JFrame();
dialog = new JDialog(frame, msg, Dialog.ModalityType.APPLICATION_MODAL);
JProgressBar progressBar = new JProgressBar();
progressBar.setIndeterminate(true);
JPanel panel = new JPanel(new BorderLayout(100,20));
panel.add(progressBar, BorderLayout.CENTER);
panel.add(new JLabel("Please wait......."), BorderLayout.PAGE_START);
dialog.add(panel);
dialog.pack();
dialog.setLocationRelativeTo(frame);
dialog.setVisible(true);
}
public void close() {
dialog.dispose();
}
}
解决方案
推荐阅读
- c# - 单击注销按钮时无法到达控制器/操作
- javascript - 有没有办法在不同的滚动点更改不同的图像?
- jquery - 如何使用 JQuery 和 Ajax 将一维数组传递给 php 页面?
- php - 以 Laravel 形式创建对象数组
- keycloak - Keycloak API execute-actions-email 发送 http 电子邮件
- php - 如何在不更改所有者或组的情况下创建或编辑不由 www-data 拥有或分组的文件?
- angular - HTML 显示 ID 而不是名称
- api - 已超出 Youtube 数据 API 配额
- python - 带有整个 df 的布尔索引
- javascript - 如何使用 MongoClient 而无需每次都编写“client.close()”?