/* * 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. } }