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

problema con ActionListener

Estas en el tema de problema con ActionListener en el foro de Java en Foros del Web. hola, he cargado unas Imágenes en swing por pantalla. cómo puedo hacer para que al pulsar con el ratón en una de ellas detecte cual ...
  #1 (permalink)  
Antiguo 05/08/2009, 10:56
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 9 meses
Puntos: 3
problema con ActionListener

hola, he cargado unas Imágenes en swing por pantalla. cómo puedo hacer para que al pulsar con el ratón en una de ellas detecte cual es? acá el código:

Código:
public class Graficos extends JComponent
{	
	public Image Foto1,Foto2;
	private Vector<String> lista;
	
	public Graficos (int ample, int alt)
	{
		setPreferredSize(new Dimension(xx,yy));
				
		//cargamos fotos
		Foto1=Toolkit.getDefaultToolkit().getImage("./Coche.png");
		Foto2=Toolkit.getDefaultToolkit().getImage("./Moto");
					
		lista= new Vector<String>();		
	}
		
               @Override
            protected void paintComponent(Graphics g)
            {

	g.drawImage(Foto1,100,500,this);
	g.drawImage(Foto2,500,500,this);
					
	repaint();
		
	//JLabel dibujo = new JLabel ("Foto1");
	//dibujo.addMouseListener(new MouseListenerCasella());
				

               Foto1.addMouseListener(new MouseListenerDibujo());
            }
	
	public class MouseListenerDibujo implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{		
			System.out.println("La Foto es: ");//+e.getActionCommand());
		}
	}
}
me urge un poco, estoy atascado aquí desde hace varios días, ya no sé que hacer :(

el problema es esta línea:
Foto1.addMouseListener(new MouseListenerDibujo());

>>cannot find symbol
refiriendose a Foto1, pero es public!!!

no sé como hacerlo, he intentado poner la imagen dentro de un Label para que la detecte pero tampoco funciona
mil gracias!!!!!!

Última edición por red_robe; 06/08/2009 a las 08:56
  #2 (permalink)  
Antiguo 05/08/2009, 11:08
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: cómo reconocer Image en ActionListener?

no es de librerías porque al poner:

import java.awt.Image.*;
o
import java.awt.Image;

el error sigue apareciendo, jooooooooeeee
  #3 (permalink)  
Antiguo 06/08/2009, 08:57
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: problema con ActionListener

nadieeeeeeee??? ayudaaaaaa, no me queda mucho tiempo :(
  #4 (permalink)  
Antiguo 12/08/2009, 13:13
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: problema con ActionListener

eooo eooo... ¿nadie me puede echar una mano???
  #5 (permalink)  
Antiguo 12/08/2009, 16:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 8
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema con ActionListener

Cita:
Iniciado por red_robe Ver Mensaje
hola, he cargado unas Imágenes en swing por pantalla. cómo puedo hacer para que al pulsar con el ratón en una de ellas detecte cual es? acá el código:

Código:
public class Graficos extends JComponent
{	
	public Image Foto1,Foto2;
	private Vector<String> lista;
	
	public Graficos (int ample, int alt)
	{
		setPreferredSize(new Dimension(xx,yy));
				
		//cargamos fotos
		Foto1=Toolkit.getDefaultToolkit().getImage("./Coche.png");
		Foto2=Toolkit.getDefaultToolkit().getImage("./Moto");
					
		lista= new Vector<String>();		
	}
		
               @Override
            protected void paintComponent(Graphics g)
            {

	g.drawImage(Foto1,100,500,this);
	g.drawImage(Foto2,500,500,this);
					
	repaint();
		
	//JLabel dibujo = new JLabel ("Foto1");
	//dibujo.addMouseListener(new MouseListenerCasella());
				

               Foto1.addMouseListener(new MouseListenerDibujo());
            }
	
	public class MouseListenerDibujo implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{		
			System.out.println("La Foto es: ");//+e.getActionCommand());
		}
	}
}
me urge un poco, estoy atascado aquí desde hace varios días, ya no sé que hacer :(

el problema es esta línea:
Foto1.addMouseListener(new MouseListenerDibujo());

>>cannot find symbol
refiriendose a Foto1, pero es public!!!

no sé como hacerlo, he intentado poner la imagen dentro de un Label para que la detecte pero tampoco funciona
mil gracias!!!!!!
Buff, soy medio nueva en java, pero intentaré echarte un cable...

A ver, trabajando con awt, en actionCommand que sacas del evento e se corresponde con el nombre que le hayas dado al componente, a ver como te explico:

boton_comenzar = new Button("Comenzar");
en getactionCommand me devuelve el string "comenzar" y no el nombre del elemento en si , que es boton_comenzar.

Por tanto mira a ver si como apaño puedes poner a esa foto un nombre "aparte" como he hecho yo con el botón.

Por otro lado, te falta hacer un addActionListener para la foto en cuestión. Si son varias, pues algo asi:

foto.addActionListener();

La cosa sería, por ejemplo, un panel que implemente action listener, donde declares los objetos foto y despues de crearlos añadas los escuchadores. En actionPerformed, despues, diferencias tal y como has hecho.

Yo optaría por no usar el mouseListener a no ser que quieras diferenciar entre varios tipos de eventos del ratón.

Intentalo así, y si no a ver si entre todos te damos mas ideas.
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 22:23.