public class DialogTest {

      public static void main(String[] args){

            DialogFrame frame = new DialogFrame();

            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            frame.setVisible(true);

 

      }

 

}

 

// New Class

import java.awt.event.*;

import javax.swing.*;

 

public class DialogFrame extends JFrame{

     

      public DialogFrame(){

            setTitle("DialogTest");

            setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);

           

            //construct a File Menu

            JMenuBar menuBar = new JMenuBar();

            setJMenuBar(menuBar);

            JMenu fileMenu = new JMenu("File");

            menuBar.add(fileMenu);

           

            // add About and Exit menu items

           

            //The About item shows the About dialog

            JMenuItem aboutItem = new JMenuItem("About");

            aboutItem.addActionListener(new ActionListener(){

                  public void actionPerformed(ActionEvent event){

                        if (dialog == null) //first time

                              dialog = new AboutDialog(DialogFrame.this);

                        dialog.setVisible(true); //pop up dialog

                  }

            });

            fileMenu.add(aboutItem);

            //The Exit item exits the program

           

            JMenuItem exitItem = new JMenuItem("Exit");

            exitItem.addActionListener( new ActionListener(){

                  public void actionPerformed(ActionEvent event){

                        System.exit(0);

                  }

            });

           

      }

      public static final int DEFAULT_WIDTH = 300;

      public static final int DEFAULT_HEIGHT = 200;

      private AboutDialog dialog;

 

}

// New Class

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

 

public class AboutDialog extends JDialog{

 

      public AboutDialog(JFrame owner){

            super(owner, "About DialogTest", true);

            // add HTML label to center

            add(new JLabel(

                  "<html><h1>Grammar Gorillas</h1></html>"), BorderLayout.CENTER);

           

            //OK button closes the dialog

            JButton ok = new JButton("OK");

            ok.addActionListener(new ActionListener() {

                  public void actionPerformed(ActionEvent event){

                        setVisible(false);

                  }

            });

           

            // add OK button to southern border

            JPanel panel = new JPanel();

            panel.add(ok);

            add(panel,BorderLayout.SOUTH);

            setSize(250,150);

           

      }

}