有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么不让DialogWait框自动关闭?

所以我想在调用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;
    }

这是我的对话课

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();
   }
}

共 (0) 个答案