Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.
* Nuevos temas en CAKEPHP
* Ahora puedes bajar los proyectos finalizados!
* Sigue a la página para seguir creciendo!!

jueves, 6 de diciembre de 2012

Java: Swing: AWT: JButton y ActionListener

3 comentarios :
Introducción

Los JButton, pues no hay mucho que decir son botones que se agregan en nuestro Frames para que ejecuten una acción al ser presionados por el Usuario.

Desarrollo
Primero tenemos que agregar la librería: 

import javax.swing.JButton;

Ahora vamos a crear nuestro método para el botón: 

private JButton verBoton() {
    //Inicializamos el botón
    JButton boton = new JButton();
    //agregamos texto al botón
    boton.setText("Botón");
    //agregamos coordenadas
    boton.setBounds(50, 50, 100, 50);
    //le damos una tipografía
    boton.setFont(new Font("Arial", 1, 18));
    //le damos un color a la fuente
    boton.setForeground(new Color(25,85,255));
 
    return boton;
 }

Con eso tendremos un botón con las letras azules (el color no es muy bonito pero es para que se aprecie el cambio). Nuestro botón si lo presionamos, no pasa nada entonces vamos a implementar una interface para que puedan ser "escuchados", con ser escuchados me refiero a que realicen algo cuando se les presione. 

public class MiClase extends JFrame implements ActionListener {//nuestro código}

Cuando implementamos ActionListener tenemos que colocar el método de esta interface de lo contrario nos va a mostrar un error, para los que usan un IDE es muy fácil porque lo coloca automáticamente, pero para los que no, acá está el método que tenemos que colocar:

@Override
 public void actionPerformed(ActionEvent e) {
 }

En este método tenemos que colocar las acciones que van a ejecutar, en este caso nuestros botones. 

Vamos a hacer un ejemplo reuniendo todo lo que vimos hasta ahora: JLabel, JTextField y JButton, vamos a escribir algo en un campo de texto y lo vamos a pasar (en mayúscula) a otro campo de texto que no se puede editar cuando presionemos un botón. 

Aunque se vea muy simple, es para dar un ejemplo de como usar actionListener y bueno acá va el código comentado las partes que no se han visto antes:
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

@SuppressWarnings("serial")
public class JFrames extends JFrame implements ActionListener {

    //Ocupamos que nuestro botón y los jtextfield sean globales para poder acceder a ellos 
    //por medio de actionPerformed
    private JButton boton;
    private JTextField jtfPalabra;
    private JTextField jtfPalabraPasada;

    public JFrames() {
        add(verBoton());
        add(getPalabra());
        add(getIngresar());
        add(getPalabraPasada());
        inicializador();
    }
   
    private void inicializador() {
        setSize(400, 300);
        setLayout(null);
        setTitle("Mi ventana");
        setLocationRelativeTo(null);
        setVisible(true);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    private JButton verBoton() {
        boton = new JButton();
        boton.setText(">>>");
        boton.setBounds(150, 200, 100, 50);
        boton.setFont(new Font("Arial", 1, 18));
        //le incluimos la posibilidad de ser escuchado cuando se
        //le precione
        boton.addActionListener(this);
        return boton;
    }
 
    private JLabel getIngresar() {
        JLabel jlIngresar = new JLabel("Ingrese una palabra: ");
        jlIngresar.setBounds(30, 50, 150, 30);
        return jlIngresar;
    }
 
    private JTextField getPalabra() {
        jtfPalabra = new JTextField();
        jtfPalabra.setBounds(180, 50, 100, 30);
        return jtfPalabra;
    }
 
    private JTextField getPalabraPasada() {
        jtfPalabraPasada = new JTextField();
        jtfPalabraPasada.setBounds(180, 120, 150, 30);
        //Hacemos que lo que esté escrito acá no se pueda modificar
        jtfPalabraPasada.setEnabled(false);
        return jtfPalabraPasada;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        //Para hacerlo paso a paso vamos a crear unas variables tipo
        //string para almacenamiento temporal
        String palabra = "";
 
        //si precionamos nuestro botón ejecutará una acción
        if (e.getSource() == boton){
            //Obtenemos el valor del campo de texto
            palabra = jtfPalabra.getText();
            //convertimos a mayúsculas
            palabra = palabra.toUpperCase();
            //asignamos al otro jtextfield (el que no se puede editar)
            jtfPalabraPasada.setText(palabra);
            //limpiamos el campo en el que escribimos la palabra
            jtfPalabra.setText(""); 
        }
    } 
}

Y como siempre la documentación de java con respecto a los temas tratados:
Botones: http://docs.oracle.com/javase/8/docs/api/javax/swing/JButton.html
ActionListener: http://docs.oracle.com/javase/8/docs/api/java/awt/event/ActionListener.html

Conclusiones

Los botones y las acciones que se realizan al presionarlos son elementos que se utilizan en la gran mayoría de aplicaciones hoy en día.

El ActionListener es una interface que se implementa para poder asignarle una acción a un elemento del JFrame.

3 comentarios :

  1. me gusta mucho java esta parte pero es que hay tantas clases que me vuelvo locooo

    ResponderEliminar
    Respuestas
    1. Si, existen clases para casi todo, pero hay que ir poco a poco entrando en java

      Eliminar