DisplayMessage.java Source code

Java tutorial

Introduction

Here is the source code for DisplayMessage.java

Source

/*
 * This example is from the book "Java Foundation Classes in a Nutshell".
 * Written by David Flanagan. Copyright (c) 1999 by O'Reilly & Associates.  
 * You may distribute this source code for non-commercial purposes only.
 * You may study, modify, and use this example for any purpose, as long as
 * this notice is retained.  Note that this example is provided "as is",
 * WITHOUT WARRANTY of any kind either expressed or implied.
 */

import java.awt.*; // AWT classes
import javax.swing.*; // Swing components and classes
import javax.swing.border.*; // Borders for Swing components
import java.awt.event.*; // Basic event handling 

public class DisplayMessage {
    public static void main(String[] args) {
        /*
         * Step 1: Create the components
         */
        JLabel msgLabel = new JLabel(); // Component to display the question
        JButton yesButton = new JButton(); // Button for an affirmative response
        JButton noButton = new JButton(); // Button for a negative response

        /*
         * Step 2: Set properties of the components
         */
        msgLabel.setText(args[0]); // The msg to display
        msgLabel.setBorder(new EmptyBorder(10, 10, 10, 10)); // A 10-pixel margin 
        yesButton.setText((args.length >= 2) ? args[1] : "Yes"); // Text for Yes button
        noButton.setText((args.length >= 3) ? args[2] : "No"); // Text for no button

        /*
         * Step 3: Create containers to hold the components
         */
        JFrame win = new JFrame("Message"); // The main application window
        JPanel buttonbox = new JPanel(); // A container for the two buttons

        /*
         * Step 4: Specify LayoutManagers to arrange components in the containers
         */
        win.getContentPane().setLayout(new BorderLayout()); // layout on borders
        buttonbox.setLayout(new FlowLayout()); // layout left-to-right

        /*
         * Step 5: Add components to containers, with optional layout constraints
         */
        buttonbox.add(yesButton); // add yes button to the panel
        buttonbox.add(noButton); // add no button to the panel

        // add JLabel to window, telling the BorderLayout to put it in the middle
        win.getContentPane().add(msgLabel, "Center");

        // add panel to window, telling the BorderLayout to put it at the bottom
        win.getContentPane().add(buttonbox, "South");

        /*
         * Step 6: Arrange to handle events in the user interface.
         */
        yesButton.addActionListener(new ActionListener() { // Note: inner class
            // This method is called when the Yes button is clicked.
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });

        noButton.addActionListener(new ActionListener() { // Note: inner class
            // This method is called when the No button is clicked.
            public void actionPerformed(ActionEvent e) {
                System.exit(1);
            }
        });

        /*
         * Step 7: Display the GUI to the user
         */
        win.pack(); // Set the size of the window based its children's sizes.
        win.show(); // Make the window visible.
    }
}