Problema num JDialog com JProgressBar() e JLabel()

0 respostas
G

ola a todos:

Fiz um jDialog pra processar uma regua.
Dae, outra classe utiliza essa pra processar. Ate ae tudo bem. Acontece porem q mando incrementar a regua, ate faz, nao nao atualiza, e se eu colocar um JOptionPane.showMessageDialog(…) no incremento, dae atualiza. segue as classes pra ver se esta faltando alguma coisa:

package SystLib;   
  
import java.awt.Dimension;   
import java.awt.Font;   
import java.awt.Toolkit;   
import java.awt.event.ActionEvent;   
import java.awt.event.ActionListener;   
import javax.swing.ImageIcon;   
import javax.swing.JButton;   
import javax.swing.JDialog;   
import javax.swing.JLabel;   
import javax.swing.JProgressBar;   
  
public class SystPro extends JDialog implements ActionListener {   
    private JLabel       oTxtPro;   
    private JProgressBar oProgress;   
    private int          nMaxPro;   
    private JButton      oProCan;   
    private ImageIcon    oBmpCan;   
  
    public SystPro(){   
        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);   
        setTitle("Aguarde.");   
        setResizable(false);   
        setModal(true);   
        setSize(350,120);   
        getContentPane().setLayout(null);   
  
        oTxtPro = new JLabel("Processando...") ;   
        oTxtPro.setFont( new Font("Tahoma", 0 , 12));   
        oTxtPro.setBounds(10,5,310,25);   
         
        oProgress = new JProgressBar() ;   
        oProgress.setValue(0);   
        oProgress.setStringPainted(true);   
        oProgress.setBounds(10,30,320,20);   
  
        oProCan = new JButton("Cancelar");   
        oBmpCan = new ImageIcon(getClass().getResource("/SystRec/cross.png")) ;   
        oProCan.setIcon(oBmpCan);   
        oProCan.setBounds(115,60,110,30);   
  
        /////////////////// Registra Obj q vao sofres Acao //////////////   
        oProCan.addActionListener(this);   
        /////////////////////////////////////////////////////////////////   
  
        getContentPane().add(oTxtPro);   
        getContentPane().add(oProgress);   
        getContentPane().add(oProCan);   
  
        Dimension oScreenSize = Toolkit.getDefaultToolkit().getScreenSize();   
        setBounds((oScreenSize.width - 350) / 2, (oScreenSize.height - 120) / 2, 350, 120);   
    }   
  
    public void actionPerformed(ActionEvent e) {   
        if (e.getSource() == oProCan) {   
            EndRegua();   
        }   
    }   
  
    public void SetRegua(int Max, String Titulo, String Texto) {   
        nMaxPro  = Max;   
        oProgress.setMinimum(0);   
        oProgress.setMaximum(Max);   
        setTitle(Titulo);   
        oTxtPro.setText(Texto);   
    }   
  
    public void IncRegua(String Texto) {   
        oProgress.setValue( oProgress.getValue() +1 );   
        oTxtPro.setText(Texto);   
  
        //JOptionPane.showMessageDialog(null, Texto );  // com essa linha, atualiza ; sem ela, nao atualiza.   
  
        if ( oProgress.getValue() >= nMaxPro)   
            EndRegua();   
    }   
  
    public void TextRegua(String Texto) {   
        oTxtPro.setText(Texto);   
    }   
  
    public void EndRegua() {   
        this.dispose();   
    }   
  
}

essa classe chama pra ficar mostrando a regua, inquanto processa:

package SystLog;   
  
import SystLib.SystLib;   
import SystLib.SystMnu;   
import SystLib.SystPro;   
import SystRmt.SystRmt;   
import java.awt.event.WindowAdapter;   
import java.awt.event.WindowEvent;   
import java.sql.SQLException;   
import java.text.ParseException;   
import java.util.logging.Level;   
import java.util.logging.Logger;   
import javax.swing.JOptionPane;   
  
public class SystLog extends SystPro {   
  
    public SystLog() {   
        addWindowListener(new WindowAdapter() {   
            @Override   
            public void windowActivated( WindowEvent evt) {   
                SystLogOnInit(evt);   
            }   
        });   
    }   
  
    public void SystLogOnInit( WindowEvent evt ) {   
  
        SetRegua( 10 , "Aguarde", "fazendo chegagem..." );   
        for ( int x=0 ; x < 10 ; x++ ) {   
            IncRegua( ""+x );   
        }   
        EndRegua();   
    }   
  
}

desde ja agradeco: MUITO OBRIGADO !!!

Criado 10 de agosto de 2009
Respostas 0
Participantes 1