Problema com JLabel

10 respostas
J

Olá…

Estou com dificuldade em usar o JLabel, estou usando dois JLabel um aparece a imagem e o outro não.
Tento setar um valor no X e Y mas mesmo assim o JLabel inicia em X=0,Y=0.

package jogo;

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

public class Cenario extends JFrame{
	
	private JLabel jLabelComida;
	private JLabel jLabelPessoa;
	
	public Cenario(){
		setTitle("Jogo");
		setSize(500, 500);		
		setLocationRelativeTo(null);
		setResizable(false);
		setVisible(true);	
		
		addComponentes();
	}
	
	public void addComponentes(){	
		this.jLabelComida = new JLabel();
		this.jLabelPessoa = new JLabel();
		
		add(this.jLabelComida);		
		add(this.jLabelPessoa);
		
		ImageIcon icone = new ImageIcon("src/imagens/pessoa.gif");        		
		this.jLabelPessoa.setIcon(icone);
		this.jLabelPessoa.setBounds(5, -225, this.jLabelPessoa.getWidth(), this.jLabelPessoa.getHeight());
		
		icone = new ImageIcon("src/imagens/comida.gif");        		
		this.jLabelComida.setIcon(icone);
	}

	public JLabel getJLabelComida() {
		return jLabelComida;
	}

	public void setJLabelComida(JLabel labelComida) {
		jLabelComida = labelComida;
	}

	public JLabel getJLabelPessoa() {
		return jLabelPessoa;
	}

	public void setJLabelPessoa(JLabel labelPessoa) {
		jLabelPessoa = labelPessoa;
	}
	
}

10 Respostas

argentinaluiz

em vez de:

ImageIcon icone = new ImageIcon(“src/imagens/pessoa.gif”);

this.jLabelPessoa.setIcon(icone);

this.jLabelPessoa.setBounds(5, -225, this.jLabelPessoa.getWidth(), this.jLabelPessoa.getHeight());
icone = new ImageIcon("src/imagens/comida.gif");                   
    this.jLabelComida.setIcon(icone);

tente:

ImageIcon icone = new ImageIcon(“src/imagens/pessoa.gif”);

this.jLabelPessoa.setIcon(icone);

this.jLabelPessoa.setBounds(5, -225, this.jLabelPessoa.getWidth(), this.jLabelPessoa.getHeight());

ImageIcon iconeComida = new ImageIcon(“src/imagens/comida.gif”);
this.jLabelComida.setIcon(iconeComida);

J

Obrigada por responder.

Continua a mesma coisa =/
jLabelComida não exibe e o jLabelPessoa inicia em X = 0 e Y = 0

ViniGodoy

Na primeira linha do initComponents faça:

Caso contrário, os comandos de setBounds não fazem efeito. Quem redimensiona a tela passa a ser o layoutmanager.

argentinaluiz

qual layout voce está usando?

para usar o setBounds() voce tem que usar o null layout;

no construtor no seu programa coloque

setLayout(null);
J

Mesmo com setLayout(null); continua a mesma coisa.

Mas em tempo de execução o setBounds funciona, porque tenho uma função que “escuta” as teclas pressionadas para mover o jlabel e está movento.

ViniGodoy

O que você está tentando fazer? Uma animação? Um jogo?

Se é, usar JLabels é o pior caminho possível.

Dá uma lida no seguinte artigo:
http://www.cokeandcode.com/node/6

E nesse livro aqui:
https://fivedots.coe.psu.ac.th/~ad/jg/

E no material do meu site, na minha assinatura.

J

jogo.

Não consigo abrir esses links, são bloquiados aqui :S

M

Sem esquecer também do site do ViniGodoy (que por sinal está muito bom!) como referência:
http://www.pontov.com.br

ViniGodoy

Tente abrir depois de casa. Valem bastante a pena.

J

Obrigada

Criado 4 de dezembro de 2009
Ultima resposta 7 de dez. de 2009
Respostas 10
Participantes 4