Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

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