/**
 * Javier Abellán. 10 Junio 2006
 * 
 * Hola mundo con SWING en Java
 */
package chuidiang.ejemplos;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

/**
 * Construye una ventana con un botón y una campo de texto. Cuando se pulsa
 * el botón, escribe "Hola mundo" en el campo de texto.
 * 
 * @author Chuidiang
 */
public class HolaMundoSwing
{
    /** La ventana */
    private JFrame v;
    
    /** El botón */
    private JButton b;
    
    /** El campo de texto */
    private JTextField t;
    
    /** 
     * Crea una instancia de HolaMundoSwing
     * @param args
     */
    public static void main(String [] args)
    {
        new HolaMundoSwing();
    }
    
    /**
     * Crea la ventana, inicializa todo y la visualiza
     */
    public HolaMundoSwing()
    {
        // Nueva ventana. Se el pone un FlowLayout para que el botón y campo
        // de texto quede alineados.
        v = new JFrame("Ventana Hola Mundo");
        v.getContentPane().setLayout(new FlowLayout());
        
        // Se crea el botón y se mete en la ventana
        b = new JButton("Púlsame");
        v.getContentPane().add (b);
        
        // Se crea el campo de texto y se mete en la ventana
        t = new JTextField(20);
        v.getContentPane().add(t);
        
        // Se le dice al botón qué tiene que hacer cuando lo pulsemos.
        b.addActionListener(new ActionListener()
        {
        	public void actionPerformed(ActionEvent e)
        	{
                t.setText ("Hola mundo");
        	}
        });
        
        // Se le dice a la ventana que termine el programa cuando se la cierre
        v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        
        // Se le da un tamaño automático a la ventana para que quepa todo su
        // contenido.
        v.pack();
        
        // Se hace visible la ventana
        v.setVisible(true);
    }

}
