[Resolvido] JLabel atualização texto utilizando setText()

5 respostas
J

Boa Noite Galera GUJ :smiley:

Estou com uns problemas em setar valores em um jlabel…
Exemplo criei uma aplicação que abre vários arquivos txt e lê o conteúdo. até ae tudo certo :-o

Eu criei uma janela JFrame, com o botão que inicia a varedura nos arquivos txt, e gostaria de ter um jLabel nesta JFrame que mostra em qual arquivo a veredura está… a idéia é esta. Passei o jLabel como parâmetro para o algoritmo de varedura e dentro utilizo o comando setText(arquivos.name()). Ai que está o problema só mostra o ultimo arquivo que foi lido pelo algoritmo, não mostra os anteriores…

Quem alguem tiver alguma idéia :idea: de resolver… não sei se presisa utilizar thread nesta situação…

Obrigaaaaaado

5 Respostas

D

Isso acontece por que a varredoura dos outros arquivo é tão rápida que só mostra o ultimo…

Está fazendo isso em outra thread? Ou na mesma?

Faz um Thread.sleep(5000); entre um arquivo e outro e vê se vai atualizar a JLabel.

Se não funcionar, então crie um método dentro da classe que extende JFrame que tem essa função
(atualizar a jlabel). Passe a janela como referencia pra classe que faz a varredoura e depois:

jan.atualizarJLabel("arquivoTal");

abrazz

N
Oi, JaVinha=], beleza? Exatamente como o d34d_d3v1l falou: faça uso de Threads. Aposto que você está fazendo todo o método de varredura, atualização da label e tudo o mais dentro de um ActionListener de algum botão, certo? Para que você possa mostrar a atualização da label, você deve abrir uma thread e, ao clicar no botão, executá-la.
buttonProcessar.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {

        Thread thread = new Thread(new Runnable() {
            // todo o seu procedimento aqui, incluindo a atualização da label!
        });
        thread.start();
    }
});

Espero ter ajudado,
fique com Deus! :D

D

Ou crie outra classe que implementa Runnable … Coloca ela com a janela como atributo… Depois faz isto:

MinhaClasse my = new MinhaClasse(this ); //this = janela que vc está... ou seja, referenciando o objeto da janela para a sua classe runnable
Thread t = new Thread(my);
t.start();

pronto

J

Opa Galera Valeus!!!
Era isto mesmo que presisava, uma thread dentro do listener como o d34d_d3v1l e Nicolas Fernandes citaram, Muito Obrigado a ajuda e atenção!!! :smiley:

Valeu e até mais!!!

D

JaVinha=:
]Opa Galera Valeus!!!
Era isto mesmo que presisava, uma thread dentro do listener como o d34d_d3v1l e Nicolas Fernandes citaram, Muito Obrigado a ajuda e atenção!!! :smiley:

Valeu e até mais!!!

Que bom que pude ajudar.
Posso te pedir um favor?

Edite seu post e coloque [RESOLVIDO] no título do tópico pode ser?
Ajuda com que outras pessoas nao entrem no tópico em vão
e que outros que tem a mesma dúvida ficarem esclarecidos.

Abraços

Criado 25 de abril de 2012
Ultima resposta 26 de abr. de 2012
Respostas 5
Participantes 3