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 !!!