35. Los controles basicos

Las ventanas de control JFrame contienen un contenedor y dentro de este, debemos agregarle un panel de contenido donde incluiremos todos los controles que vayamos a usar. Para ello, utilizaremos su metodo "getContentPane()". Es decir, antes de incluir cualquier control, estos necesitaran estar incluidos dentro del panel.

Ademas de ello, tambien podemos incluir un gestor de organizacion llamados Layout para la distribucion de los controles. En nuestro caso, lo que haremos sera anular este gestor, de esta forma, tendremos libre la distribucion de los controles.

Una vez incluido el panel y anulado el gestor de organizacion, ya podemos incluir nuestros controles y uno de ellos va a ser JLabel.

 

JLabel

Este control, es una simple etiqueta donde pondremos texto fijo.

Para añadir un control, ademas de importar su paquete, debemos paser tres fases. Primero, instanciar el control, segundo colocarlo en una ubicacion y tercero añadirlo al panel con el metodo "add()". Quedaria asi:

 

JLabel etiqueta = new JLabel("Aqui ira el texto");

etiqueta.setBounds(10,25,120,20);

this.getContentPane.add(etiqueta);

 

Por tanto, imaginemos que queremos crear una ventana de ancha 300 y alto 200 y queremos incluir en su interior un simple texto. El codigo quearia asi:

 

import javax.swing.JFrame;

import javax.swing.JLabel;

public class Ventana extends JFrame{

 

    public Ventana(){

        this("Mi primera ventana",10,10,300,200);

    }

 

    public Ventana(String titulo, int x, int y, int w, int h){

        super(titulo);

        this.getContentPane().setLayout(null);        // Dentro del panel, le digo que anulo el Layout

        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

        this.setBounds(x,y,w,h);

        this.setVisible(true);

 

        JLabel lblTexto = new JLabel("Esto es una etiqueta de texto");

            lblTexto.setBounds(10,25,120,20);   // Situo la etiqueta en el lugar que yo quiera

            this.getContentPane().add(lblTexto);

    }

    public static void main(String[]args){

 

    }

}

 

Ejecuta el programa y veras la etiqueta de texto dentro de la ventana.

Intenta ejecutarlo eliminanto el codigo "this.getContentPane().setLayout(null);" a ver que ocurre. No podras situar la etiqueta de texto donde tu quieras.

 

JTextField

Este control es el que utilizamos como campo de texto, en el podremos introducir texto para posteriormente utilizarlo a nuestra conveniencia. Ahora vamos a colocar en la ventana un campo de texto para poder escribir en el.

 

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextField;

public class Ventana extends JFrame{

 

    public Ventana(){

        this("Mi primera ventana",10,10,300,200);

    }

 

    public Ventana(String titulo, int x, int y, int w, int h){

        super(titulo);

        this.getContentPane().setLayout(null);        // Dentro del panel, le digo que anulo el Layout

        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

        this.setBounds(x,y,w,h);

        this.setVisible(true);

 

        JLabel lblTexto = new JLabel("Esto es una etiqueta de texto");

            lblTexto.setBounds(10,25,120,20);    // Situo la etiqueta en el lugar que yo quiera

            this.getContentPane().add(lblTexto);

 

        JTextField cmpNombre = new JTextField();

            cmpNombre.setBounds(10,50,100,20);

            this.getContentPane().add(cmpNombre);

    }

    public static void main(String[]args){

 

    }

}

 

Prueba a ejecutarlo ahora, veras que dispones de un campo de texto donde puedes escribir cualquier cosa. Cuando creas la instancia de este control, puedes dejar un texto predeterminado:

 

JTextField cmpNombre = new JTextField("Escribe tu nombre");

 

JButton

Este es el control de los famosos botones, con ellos podremos programar las acciones que creamos pertinentes para ellos. Como lo mismo con los otros controles su codigo es el siguiente:

 

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JButton;

public class Ventana extends JFrame{

 

    public Ventana(){

        this("Mi primera ventana",10,10,300,200);

    }

 

    public Ventana(String titulo, int x, int y, int w, int h){

        super(titulo);

        this.getContentPane().setLayout(null);        // Dentro del panel, le digo que anulo el Layout

        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

        this.setBounds(x,y,w,h);

        this.setVisible(true);

 

        JLabel lblTexto = new JLabel("Esto es una etiqueta de texto");

            lblTexto.setBounds(10,25,120,20);    // Situo la etiqueta en el lugar que yo quiera

            this.getContentPane().add(lblTexto);

 

        JTextField cmpNombre = new JTextField();

            cmpNombre.setBounds(10,50,100,20);

            this.getContentPane().add(cmpNombre);

 

        JButton btnCopiar = new JButton("Copiar");

            btnCopiar.setBounds(25,80,100,20);

            this.getContentPane().add(btnCopiar);

    }

    public static void main(String[]args){

 

    }

}

 

Como veras, este ultimo JButton, es un boton, que si lo pulsas no ocurre nada, no hace ninguna accion. Esto es porque todavia no le hemos programado nada, simplemente lo hemos agregado a nuestra ventana. Para ello, veremos mas adelante los eventos, que sera donde programremos nuestros botones.

Con estos tres controles JLabel, JTextField y JButton, ya tenemos los controles mas basicos del paquete Swing.