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