sábado, 6 de febrero de 2016

Dar función a un botón en Java

Vamos a atribuirle función a un botón en Java, es decir, que cuando hagamos clic en él haga algo.

Darle una función a un botón en Java es muy sencillo, si no os acordáis de cómo hacer un botón en este post tenéis un par de ejemplos y el código fuente completo.

Para dotar de función a un botón en Java lo que hay que hacer es crear una clase interna, un oyente que reaccione cuando hagamos clic sobre el botón. Una vez creada esa clase
 interna lo único que hay que hacer es ponerle dentro lo que queremos que haga, puede ser otro método, otro objeto, etc.

La estructura básica de una clase interna es la siguiente:

  private class o_boton1 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            
            crearVentana();

        }

Se pone en la parte de los métodos cómo si fuera un método más y dentro ya ponemos lo que queremos que haga, en este ejemplo que os he puesto lo que hace es lo que tengamos puesto en el método crearVentana(), pero podemos poner cualquier otra cosa que se nos ocurra.

Finalmente para que nuestro botón pueda reconocer ese oyente y que reaccione tenemos que poner está línea:

boton1.addActionListener(new o_boton1());

Con esto ya le estamos añadiendo el oyente al botón 1 y ya lo tenemos totalmente funcional.

Una ventana con una imagen de fondo y dos botones de los cuales el botón 1 cree otra ventana exactamente igual al hacer clic quedaría de la siguiente forma:

Atribuir función a un botón en java
Función en un Botón en Java


Si seguimos haciendo clic en cualquiera de los botones 1 que hay se seguirían creando más ventanas, así hasta que nos cansemos o hasta que se nos acabe la memoria ram.

Las líneas que hemos añadido al proyecto del post que os puse al principio para poder atribuirle esa función al botón son las siguientes:

import java.awt.event.*;

boton1.addActionListener(new o_boton1());

 private class o_boton1 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
     
            crearVentana();

        }

    }  


Cómo veis con muy pocas líneas de código ya tenemos nuestro botón totalmente funcional y que reacciona cuando hacemos clic en él.

El código fuente de esa clase con imagen de fondo, dos botones y función en uno de ellos quedaría de la siguiente forma:


Código Fuente:


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class VentanaConFondo 
{
    private JFrame vent;
    private JButton boton1, boton2;


    public VentanaConFondo()
    {
        crearVentana();
    }


    private void crearVentana()
    {

        boton1=new JButton("Botón 1");
        boton2=new JButton("Botón 2");
        
        boton1.setSize(300,120);
        boton2.setSize(300,120);
        
        boton1.setLocation(75,75);
        boton2.setLocation(75,275);
  
        vent = new JFrame ("JuegoSoftware.com");
        vent.setSize(900,592);
        vent.setContentPane(new JLabel(new ImageIcon("Imagenes/Img1.jpg")));
        vent.setLocationRelativeTo(null);
        vent.setLayout(null);
        vent.setResizable(false);
        vent.setVisible(true);

        vent.setDefaultCloseOperation(vent.EXIT_ON_CLOSE);
        
        vent.add(boton1);
        vent.add(boton2);
        
        boton1.addActionListener(new o_boton1());

    }


     private class o_boton1 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           
            crearVentana();

        }
    }  
    


}


No hay comentarios:

Publicar un comentario