JProgressBar

19/09/2007

1

Tenho uma jinternalFrame com um botao e uma Jtable. Quando pressiono o botao ele tras os dados do banco de dados e coloca eles no jtable. ate ai tudo funciona bem.

O problema é que o usuario, enquanto o sistema faz a consulta ao banco, ele fica com todo o sistema com o efeito cinza, ou seja a jframe bloqueia. e eu gostaria de alguma dica para resolver este problema . ou seja, como criar uma jprogressbar para aparecer em uma jframe enquanto o processo de consulta estiver a correndo.

Para isso terei de usar threads ? alguem me pode dar um exemplo ? obrigado desde ja !


Responder

Posts

13/08/2008

Nilodp

pega esse exemplo! bem simples ai vc altera!
-----------------------

OBS FIZ NO NETBEANS
CRIAR UM FRAME CHAMADAO DE Newframe
ai so imprementar =)
---------------
package newpackage;

/*
* NewJFrame.java
*
* Created on 29 de Julho de 2008, 19:54
*/
/**
*
* @author Nilodp
*/
public class NewJFrame extends javax.swing.JFrame {

private int valor = 0;

/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
}

private void aquiSim(){
jProgressBar1.setString(´Processando´);
int i, y;
for (i = 0; i <= 100; i++) {

jProgressBar1.setValue(i);

try {
Thread.sleep(100);
} catch (Exception ex) {
}

}

}

private void correBarra() {
new Thread() {
public void run() {
aquiSim();
}
}.start();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate=´collapsed´ desc=´Generated Code´>//GEN-BEGIN:initComponents
private void initComponents() {

jButton1 = new javax.swing.JButton();
jProgressBar1 = new javax.swing.JProgressBar();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jButton1.setText(´jButton1´);
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jProgressBar1.setStringPainted(true);

org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jProgressBar1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
.add(jButton1))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(jButton1)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jProgressBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(234, Short.MAX_VALUE))
);

java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-408)/2, (screenSize.height-332)/2, 408, 332);
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
correBarra();

}//GEN-LAST:event_jButton1ActionPerformed

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JProgressBar jProgressBar1;
// End of variables declaration//GEN-END:variables
}


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira