DialogDesktop.java Source code

Java tutorial

Introduction

Here is the source code for DialogDesktop.java

Source

/*
Java Swing, 2nd Edition
By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole
ISBN: 0-596-00408-7
Publisher: O'Reilly 
*/
// DialogDesktop.java
//A frame that can easily support internal frame dialogs.
//

import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class DialogDesktop extends JFrame {

    public DialogDesktop(String title) {
        super(title);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        final JDesktopPane desk = new JDesktopPane();
        setContentPane(desk);

        // Create our "real" application container; use any layout manager we
        // want.
        final JPanel p = new JPanel(new GridBagLayout());

        // Listen for desktop resize events so we can resize p. This will ensure
        // that
        // our container always fills the entire desktop.
        desk.addComponentListener(new ComponentAdapter() {
            public void componentResized(ComponentEvent ev) {
                Dimension deskSize = desk.getSize();
                p.setBounds(0, 0, deskSize.width, deskSize.height);
                p.validate();
            }
        });

        // Add our application panel to the desktop. Any layer below the
        // MODAL_LAYER
        // (where the dialogs will appear) is fine. We'll just use the default
        // in
        // this example.
        desk.add(p);

        // Fill out our app with a few buttons that create dialogs
        JButton input = new JButton("Input");
        JButton confirm = new JButton("Confirm");
        JButton message = new JButton("Message");
        p.add(input);
        p.add(confirm);
        p.add(message);

        input.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ev) {
                JOptionPane.showInternalInputDialog(desk, "Enter Name");
            }
        });

        confirm.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ev) {
                JOptionPane.showInternalConfirmDialog(desk, "Is this OK?");
            }
        });

        message.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ev) {
                JOptionPane.showInternalMessageDialog(desk, "The End");
            }
        });
    }

    // A simple test program
    public static void main(String[] args) {
        DialogDesktop td = new DialogDesktop("Desktop");
        td.setSize(350, 250);
        td.setVisible(true);
    }
}