Re:JProgressBar

2 respostas
T

Isso se chama “tentar processar sua aplicação na mesma thread que é usada para a GUI”. Esse problema não é trivial de resolver.
Não há uma API do tipo “DoEvents” que existe no VB; em vez disso, você precisa usar o tal do SwingWorker.
De qualquer maneira, tente ver se você iniciar sua aplicação usando EventQueue.invokeLater ajuda um pouco.
Em vez de fazer (new MinhaJFrame()).show() no seu programa principal, você pode tentar algo como:

public static void main(String[] args) {

        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MinhaJFrame().setVisible(true);
            }
        });

    }

2 Respostas

V

Pessoal,

Estou com um probleminha na minha aplicação…

Coloquei uma JProgressBar no meu form, e em um determinado método, são feitos vários processamentos, e no meio deles, eu mando alterar o valor na barra de progresso (progBar.setValue(35), por exemplo).

Porém, a barra não atualiza na hora que esse setValue é chamado, mas somente no final do processamento aparece o 100% direto…
Tipo, eu estou buscando uma forma de dar um refresh na barra no momento do setValue, ou no form… não sei se é isso, mas enfim… preciso de uma ajuda, quem puder me ajudar ae…

V
thingol:
Isso se chama "tentar processar sua aplicação na mesma thread que é usada para a GUI". Esse problema não é trivial de resolver. Não há uma API do tipo "DoEvents" que existe no VB; em vez disso, você precisa usar o tal do SwingWorker. De qualquer maneira, tente ver se você iniciar sua aplicação usando EventQueue.invokeLater ajuda um pouco. Em vez de fazer (new MinhaJFrame()).show() no seu programa principal, você pode tentar algo como:
public static void main(String[] args) {

        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MinhaJFrame().setVisible(true);
            }
        });

    }

ok, vou tentar..
valeu

Criado 18 de maio de 2006
Ultima resposta 18 de mai. de 2006
Respostas 2
Participantes 2