Duvida construtor -imagens em swing

3 respostas
F

ola , eu estou com um problema, nao consigo mostrar as minhas imagens no swing

eu tenho este código:

ImageIcon[] image = {
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
				new ImageIcon("/root/Desktop/as.jpg"),
		};


	public void setImage(ImageIcon[] image ) {
		this.image = image;
	}

	public ImageIcon[] getImage() {
		return image;
	}

e noutra classe, a dos construtores

package game;

import javax.swing.ImageIcon;

public class Card {

	private final String faceCard;
	private final String suit;
	private final int number;
	public ImageIcon image;

	Card(String faceCard, String suit, int number_, ImageIcon image) {
		this.faceCard = faceCard;
		this.suit = suit;
		this.number = number_;
		this.image = image;
	}
	



	public String toString() {
		return faceCard + " of " + suit + "\n" + "Value of card: " + number;
	}

	public int toInt() {
		return number;
	}
	
	
	public ImageIcon ImageIcon() {
		return image;
	}

}
e o erro e aqui, segundo o eclipse: The constructor ImageIcon(ImageIcon[]) is undefined
ImageIcon pic = new ImageIcon(myDeckOfCards.getImage());

		
		panel2.add(lab1);
		panel2.add(new JLabel(pic));
		panel2.add(card1);
		panel2.add(pn1);
		panel2.add(btn1);

alguem pode ajudar? thanks

3 Respostas

Francisco_Silva

Isso porque a classe ImageIcon da API não possui esse construtor… para funcionar teria que passar um index da referencia na Array.
Exemplo:

ImageIcon pic = new ImageIcon(myDeckOfCards.getImage()[0]);

O método getImage() retorna uma array de referencias de ImageIcon, porem o construtor ImageIcon(Image image) só aceita uma unica referencia de objeto Image.
Eu realmente não entendi a idéia de seu programa, mas acho que terá que implementar o retorno por index na sua classe Card…

F

ola, obrigado pela sua resposta

eu se colocar deste jeito, ele deixa de dar erro, mais nao retorna a imagem, o que poderá ser?

ImageIcon pic = myDeckOfCards.getImage();
Francisco_Silva

Pelo que entendi você ta fazendo um tipo de jogo… e cada Card correspondera uma imagem… é isso?

ImageIcon pic = myDeckOfCards.getImage();

Se você não mudou nada dentro do método “getImage()”… dessa forma continua errada e com certeza teria de dar algum erro.

Como já disse, esse método retorna uma array de referencia de imagem… um tipo de conjunto de varias referencias de imagens, isso é algo que não pode ser atribuindo para a variável pic, pois a variável pic só suporta uma referencia de imagem de cada vez…

ImageIcon pic = myDeckOfCards.getImage()[0];

Assim talvez funcionaria, mas tem que ter certeza que as Strings dos arquivos de imagens estão certas, se não não muda nada.

Explique melhor o que quer fazer…

Criado 24 de janeiro de 2011
Ultima resposta 24 de jan. de 2011
Respostas 3
Participantes 2