Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas con Manejo de Eventos de raton

Estas en el tema de Problemas con Manejo de Eventos de raton en el foro de Java en Foros del Web. Hola, saludos, espero me puedan ayudar con mi problema. Estoy empezando con una simple aplicacion en la que hay dos botones, y quiero (solo para ...
  #1 (permalink)  
Antiguo 18/04/2009, 21:56
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Problemas con Manejo de Eventos de raton

Hola, saludos, espero me puedan ayudar con mi problema.

Estoy empezando con una simple aplicacion en la que hay dos botones, y quiero (solo para probar de momento) que al darle click a los botones me mande un mensaje.

El problema es que no me reconoce en el metodo ActionPerformed los componentes "boton1" y "boton2". He leido libros, y visto ejemplos, pero todo esta igual. No se cual sea el error....

Aqui el codigo:

Código:
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.Font;
import javax.swing.SwingConstants;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

class Interfaz extends JFrame
{
	private JLabel etiqueta; //Etiqueta
	private JButton boton1; //Boton de prueba 1
	private JButton boton2; //Boton de prueba 2
	
	public Interfaz()
	{
		super("Interfaz 1");
		
		setLayout(null);
		
                //Propiedades de la etiqueta
		etiqueta = new JLabel("Bienvenido, elige una opcion");
		etiqueta.setBounds(75,50,350,50);
		etiqueta.setHorizontalAlignment(SwingConstants.CENTER);
		etiqueta.setFont(new Font("Bienvenido, elige una opcion",Font.BOLD,18));
		add(etiqueta);
		
                //Propiedades del boton de prueba 1
		boton1 = new JButton("Usuario");
		boton1.setBounds(175,140,150,70);
		boton1.setHorizontalAlignment(SwingConstants.CENTER);
		add(boton1);
		
                //Propiedades de boton de prueba 2
		boton2 = new JButton("Administrador");
		boton2.setBounds(175,260,150,70);
		boton2.setHorizontalAlignment(SwingConstants.CENTER);
		add(boton2);
		
                //Asignando a los componentes el manejador de eventos
		ManejadorEventos objeto = new ManejadorEventos();
		boton1.addActionListener(objeto);
		boton2.addActionListener(objeto);
	}
}

class ManejadorEventos implements ActionListener
{
	public void actionPerformed( ActionEvent evento )
	{
		if(evento.getSource() == boton1)
		{
			JOptionPane.showMessageDialog(null,"1");
		}
		
		else if ((evento.getSource()) == boton2)
		{
			JOptionPane.showMessageDialog(null,"2");
		}
	}
}
El error del compilador es este:

Código:
- cannot find symbol variable boton1
- cannot find symbol variable boton1
  #2 (permalink)  
Antiguo 18/04/2009, 23:52
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Problemas con Manejo de Eventos de raton

Hola:

boton1 es de la clase Interfaz, por lo que no está accesible desde la clase Manejador Eventos. Hay muchas formas de hacerlo visible, pero la más simple es que metas la clase ManejadorEventos dentro de la clase Interfaz, así

Código:
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.Font;
import javax.swing.SwingConstants;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

class Interfaz extends JFrame
{
	private JLabel etiqueta; //Etiqueta
	private JButton boton1; //Boton de prueba 1
	private JButton boton2; //Boton de prueba 2
	
	public Interfaz()
	{
		super("Interfaz 1");
		
		setLayout(null);
		
                //Propiedades de la etiqueta
		etiqueta = new JLabel("Bienvenido, elige una opcion");
		etiqueta.setBounds(75,50,350,50);
		etiqueta.setHorizontalAlignment(SwingConstants.CENTER);
		etiqueta.setFont(new Font("Bienvenido, elige una opcion",Font.BOLD,18));
		add(etiqueta);
		
                //Propiedades del boton de prueba 1
		boton1 = new JButton("Usuario");
		boton1.setBounds(175,140,150,70);
		boton1.setHorizontalAlignment(SwingConstants.CENTER);
		add(boton1);
		
                //Propiedades de boton de prueba 2
		boton2 = new JButton("Administrador");
		boton2.setBounds(175,260,150,70);
		boton2.setHorizontalAlignment(SwingConstants.CENTER);
		add(boton2);
		
                //Asignando a los componentes el manejador de eventos
		ManejadorEventos objeto = new ManejadorEventos();
		boton1.addActionListener(objeto);
		boton2.addActionListener(objeto);
	}

        class ManejadorEventos implements ActionListener
        { 
	   public void actionPerformed( ActionEvent evento )
	   {
		if(evento.getSource() == boton1)
		{
			JOptionPane.showMessageDialog(null,"1");
		}
		
		else if ((evento.getSource()) == boton2)
		{
			JOptionPane.showMessageDialog(null,"2");
		}
	   }
      }
}
__________________
Apuntes Java
Wiki de Programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:16.