Atualizar a imagem de um JLabel

6 respostas
S

Pessoal, estou com uma dúvida que está me deixando maluco.

Meu código está grande, portanto vamos ao que interessa:

Tenho uma classe GUIControle onde criei varios objetos, e um deles é o botão que está complicando minha vida.

ligarDesligarSala1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            ligarDesligarSala1ActionPerformed();
        }
    });

    public void ligarDesligarSala1ActionPerformed() {
        ImageIcon ii = new ImageIcon("c:\\planta-baixa-casa1.jpg");
       	jLabel6.setIcon((ii));
        System.out.println("OK");
    }

o evento serve para atualizar a img do meu label.
Quando eu clico no botão, tudo funciona. Quando eu chamo este método ligarDesligarSala1ActionPerformed() de dentro da propria classe, tmbm funciona. Agora o que me deixa intrigado é que quando chamo o método de outra classe, não funciona, na verdade ele chama o método pois o OK é impresso, mas a img não muda.

Sabem o que tenho que fazer???

6 Respostas

N

Nossa Speelcraft estou com um mesmo problema… Já tentei de várias formas e nada.
Alguém ai sabe? PLS

R

Cara tenta o seguinte.

JLabel label = new JLabel();
label.setIcon(icon);
label.setDisabledIcon(iconDisable);

ai vc set o label habilitado acredito que é para ele mudar automaticamante
Eu nunca tentei mas é oque aparente acontece
tenta ai depois vc dá uma resp.

S

rocha.erick:
Cara tenta o seguinte.

JLabel label = new JLabel();
label.setIcon(icon);
label.setDisabledIcon(iconDisable);

ai vc set o label habilitado acredito que é para ele mudar automaticamante
Eu nunca tentei mas é oque aparente acontece
tenta ai depois vc dá uma resp.

Desculpa a minha ignorancia mas não entendi o que vc pediu pra fazer rs

R

Na verdade vc precisa de duas imagens e você adicionar uma imagem em cada um desses métodos
e ao setar o label como desabilitado, a imagem indicada no label.setDisableIcon(); será carregada e vice versa.
Não sei se era isso que vc queria;
Uma imagem quando está hailitado o label e outra imagem quando desabilitar o label

R

cara esquece tudo oque eu falei tem nada ver com oque vc queria.
só umas dicas, se vc está chamando o metodo de outra classe e essa classe é visual, pode ser o focus do formulário, se vc quer que toda vez que a sua imagem apareça reescreva o método repaint do seu form, chame o repaint do pai e chame o seu método que visualiza a imagem, porque toda vez que a tela recebe o focus ele repinta, o form, e ao repintar ele vai repintar a imagem tb.
Eu conheço mais de SWT,JFace e RCP, mas to mexendo com swing tb, por isso num é certeza mais ve ai
falous

S

rocha.erick:
cara esquece tudo oque eu falei tem nada ver com oque vc queria.
só umas dicas, se vc está chamando o metodo de outra classe e essa classe é visual, pode ser o focus do formulário, se vc quer que toda vez que a sua imagem apareça reescreva o método repaint do seu form, chame o repaint do pai e chame o seu método que visualiza a imagem, porque toda vez que a tela recebe o focus ele repinta, o form, e ao repintar ele vai repintar a imagem tb.
Eu conheço mais de SWT,JFace e RCP, mas to mexendo com swing tb, por isso num é certeza mais ve ai
falous

Cara consegui arrumar.
Foi um erro meu. Mancada de iniciante.

Na verdade esta classe foi criada atravéz de uma instancia e quando eu tentava instanciar ela pela segunda vez, não atualizava mais. Isto porque eu estava atualizando a Instancia da Instancia rsrs
Nao sei se conseguiu entender o problema.

De qualquer forma muito obrigado.

Criado 17 de novembro de 2010
Ultima resposta 17 de nov. de 2010
Respostas 6
Participantes 3