1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Qual o problema com minha JProgressBar em form Runnable?

Meu programa interage com o banco de dados, e nessa operação os frames acabam ficando estáticos(travando). Tentei entao rodar uma barra de progresso dentro de um frame runnable e mesmo assim nao surtiu efeitos...

sabem dizer qual o problema com a minha classe?

import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.UIManager;


public class Progresso extends JFrame implements Runnable{

    JLabel rotulo;
    JProgressBar prog;
    public boolean status = true;

    private int max;
    private int min;
    int valor;
    private boolean ativo = false;
    public Progresso(int maximo,int minimo){
        max = maximo;
        min = minimo;
        valor = 0;
    }

    public void barraProg(){
        prog.setValue(prog.getValue()+ 1);
    }

    public void montaPainel(){
        this.setLocation((((Toolkit.getDefaultToolkit().getScreenSize().width - 400)  / 2) - (this.getWidth() / 2)),   
                (((Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2) - (this.getHeight() / 2))); 
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } catch (Exception e) {
            e.printStackTrace();
        }

        this.setSize(400,150);
        this.setLayout(null);

        rotulo = new JLabel("AGUARDE... OPERAÇÃO EM PROCESSO!");
        rotulo.setBounds(90,30,350,40);
        prog = new JProgressBar();
        prog.setValue(0);
        prog.setBounds(30,80,350,20);
        add(prog);
        add(rotulo);

        this.setVisible(true);

    }

    public void run() {
        montaPainel();
        long valor = 0;
        while(status){
            if(prog.getValue() < getValor())            
            barraProg();
        }
    }

    public void insereBarra(int valor){
        this.valor = valor;
    }

    public int getValor(){
        return valor;
    }

    public void setStatus(boolean valor){
        status = valor;
    }

    public boolean getStatus(){
        return status;
    }



}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags threads ou faça a sua própria pergunta.