Cita:
Iniciado por red_robe 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.