// From: The JFC Swing Tutorial, 2ed
// Demonstrates minimum code necessary for a Java Swing
// GUI application
import javax.swing.*;        

public class HelloWorldSwing 
{
    // Every Swing application will have these two functions

    // Create the GUI and show it.  For thread safety, this method should 
    // be invoked from the event-dispatching thread.
    private static void createAndShowGUI() 
    {
        // Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);

        // Create and set up the window.
        JFrame frame = new JFrame("HelloWorldSwing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Add the ubiquitous "Hello World" label.
        JLabel label = new JLabel("Hello World");
        frame.add(label);

        // Display the window.
        frame.pack();
        frame.setVisible(true);
    }  // end createAndShowGUI

    public static void main(String[] args) 
    {
        // Schedule a job for the event-dispatching thread:
        // creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater (
           new Runnable() // anonymous inner class
           {
               public void run() // from Runnable interface
               {
                  createAndShowGUI();
               }  // end run
           });  // end Runnable
    }  //end main
}  // end HelloWorldSwing
