Seguidores

MIS WEBS



domingo, 7 de enero de 2018

CREAR UN BOTÓN EN UN A LAMINA DE UNA MARCO DE JAVA

       

Como crear un botón en java utilizando la clase JButton

   Un evento constituye un método para que una clase notifique a los usuarios de un objeto que algo interesante le sucede, como, por ejemplo, que se ha hecho clic en un control de una interfaz gráfica de usuario. Esta notificación se denomina provocar un evento, este evento desencadenará una acción.


        En este caso el evento es hacer clic, pero dependiendo de en qué botón hagamos clic la acción que se desencadena es diferente. No es lo mismo hacer clic en el botón de grabar de un formulario que hacer clic en el de cerrar. Pero el evento sí que es el mismo hacer clic.

Para programar en java eventos nos resultaran necesarios 3 objetos:
1. Que desencadenante de la acción (hacer clic, cerrar ventana, cargar el programa.. )

¿Cual es el OBJETO EVENTO?


2. Quien desencadena la acción (que botón toco el usuario, que venta cerro, que programa cerro…)

¿Cual es el OBJETO FUENTE?



3. Quién recibe la acción , cuando hagamos clic en el botón X sobre que objeto se desencadenara la acción(la ventana, el programa, el formulario, la impresora..)

OBJETO LISTENER implementa la interface ActionListener



Ejemplo.
Nosotros tenemos un formulario con un botón guardar y el usuario lo clica para cerrar el programa.
OBJETO EVENTO  Hacer clic
OBJETO FUENTE = El botón rojo, amarillo o azul
OBJETO LISTENER = La lamina
ACCIÓN = Modificar color de la lámina (setBackground)

Como crear un botón (button)


Para crear el botón en la lámina necesitamos la clase JBuuton, creamos un objeto de la clase JBuuton y con el método add() lo cargamos en el constructor;


class Lamina6 extends JPanel{
      
       private Image foto;
       JButton PrimerBoton= new JButton ("CERRAR");
      
       // constructor donde hacemos visible el boton
       public Lamina6() {
             add(PrimerBoton);
       }



Ejercicio:


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ddd {
      
       public static void main(String[] args) {
             Marco10 mimarco10 = new Marco10();
             mimarco10.setVisible(true);
             mimarco10.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       }
      
}

class Marco10 extends JFrame{
       public Marco10() {
             setTitle("ESTE ES NUESTRO MARCO");
             setBounds (700,300,500,300);
             Lamina colores = new Lamina();
             add(colores);
       }
      
}

class Lamina extends JPanel implements ActionListener{
       JButton botonAzul = new JButton("Azul");
       JButton botonRojo = new JButton("Rojo");
       JButton botonAmarillo = new JButton("Amarillo");
      
       public Lamina() {
             add(botonAzul);
             add(botonRojo);
             add(botonAmarillo);
             botonAzul.addActionListener(this);//el oyente es la lamina (this)
             botonRojo.addActionListener(this);
             botonAmarillo.addActionListener(this); 
       }
       public void actionPerformed(ActionEvent e) {
Object FUENTE = e.getSource();
            
             if (FUENTE == botonAzul) {setBackground(Color.blue);}
             else if (FUENTE == botonRojo) {setBackground(Color.RED);}
             else if (FUENTE == botonAmarillo) {setBackground(Color.YELLOW);}         
       }
}

También lo podríamos hacer así:

public void actionPerformed(ActionEvent e) {
              switch (e.getActionCommand()) {
                case "Azul":     setBackground(Color.blue);              break;
                case "Amarillo": setBackground(Color.yellow);      break;
                case "Rojo":            setBackground(Color.red);         break;
                default:             break;
                }
}

No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital