Imagem

3 respostas
marcos_verd

oie

eu tenho um JLabel com uma iage e quando eu clico em um botão (que tbm é uma Imagem (evento MouseListener))
a imagem do que esta no meu JLabel num é trocada

como que faço para trocar essas imagens

3 Respostas

F

eu não percebi bem, você quer que a Label mude de imagem ao carregar no botão?

marcos_verd

não não
eu tenho uma imagem dentro de um JLabel
dai quando eu clicar no botão a imagem é substituida por putra

pq no meu programa a pessoa pode trocar o plano de fundo do programa

tendeu??

F

acho que já percebi.

voçe pode fazer assim:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;



public class Buttont extends JFrame {

	JButton b1 = new JButton("Image1");
	JButton b2 = new JButton("Image2");
	JButton b3 = new JButton("Image3");
	JLabel lb = new JLabel();
	
	//os nomes das imagens que se encontram nos recursos
	private String names[] = {"hero1.png", "hero2.png", "hero3.png"}; 
	

	//como existem três imagens, cada uma tem um nome (0 ao 2)
	 private Icon icons[] = {
			         new ImageIcon( getClass().getResource( names[ 0 ] ) ),
			         new ImageIcon( getClass().getResource( names[ 1 ] ) ),
			         new ImageIcon( getClass().getResource( names[ 2 ] ) ) };
			        
			
public Buttont()
{
	super("Butões e imagens");  
	setLayout(new FlowLayout()); 
	this.setVisible(true); 
	this.setSize(300,300); 
	
	add(b1); 
	add(b2);
	add(b3);
	add(lb);
	Handler oo = new Handler();  
	b1.addActionListener(oo);  
	b2.addActionListener(oo);
	b3.addActionListener(oo);
	



}

//esta classe corresponde a cada evento(se clicarmos num butão iremos chamar um evento)
private class Handler implements ActionListener
{
	public void actionPerformed(ActionEvent e )
	{
		//se clicarmos no butão 1, a imagem 0 aparece
		if (e.getSource()==b1)
		{
			lb.setIcon(icons[0]);
		}
		
		if (e.getSource()==b2)
		{
			lb.setIcon(icons[1]);
		}
		
		if (e.getSource()==b3)
		{
			lb.setIcon(icons[2]);
		}
		
		
	}
	

}



	

public static void main (String[] args)
{
	
new Buttont();

}



	
	
	
	
	
	
}

Nesta classe existem três imagens. Cada botão apresenta uma imagem que irá ser a imagem da LAbel.
Portanto ela muda.

Criado 18 de setembro de 2011
Ultima resposta 18 de set. de 2011
Respostas 3
Participantes 2