首页javajoptionpaneJava Swing - 如何显示按钮“确定”后一定的时间为JOptionPane

Java Swing - 如何显示按钮“确定”后一定的时间为JOptionPane

我们想知道如何显示按钮“确定”后一定的时间为JOptionPane。
import java.awt.Dialog.ModalityType;
import java.awt.Dimension;
import java.awt.Label;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.SwingWorker;

public class Main extends Box {

  public Main() {
    super(BoxLayout.Y_AXIS);

    Box info = Box.createVerticalBox();
    info.add(new Label("Please wait 3 seconds"));
    final JButton continueButton = new JButton("Continue");
    info.add(continueButton);

    JDialog d = new JDialog();
    d.setModalityType(ModalityType.APPLICATION_MODAL);
    d.setContentPane(info);
    d.pack();

    continueButton.addActionListener(e -> d.dispose());
    continueButton.setVisible(false);

    SwingWorker sw = new SwingWorker<Integer, Integer>() {
      protected Integer doInBackground() throws Exception {
        int i = 0;
        while (i++ < 30) {
          System.out.println(i);
          Thread.sleep(100);
        }
        return null;
      }

      @Override
      protected void done() {
        continueButton.setVisible(true);
      }

    };
    JButton button = new JButton("Click Me");
    button.addActionListener(e -> {
      sw.execute();
      d.setVisible(true);
    });
    add(button);
  }

  public static void main(String args[]) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setContentPane(new Main());
    frame.setPreferredSize(new Dimension(500, 400));
    frame.pack();
    frame.setVisible(true);
  }
}