Estou querendo fazer um JProgressBar para ele terminar o processo quando passar 5 minutos.
Eu tenho alguns exemplos aqui, convertendo os 5 minutos em milesegundos vai dar 300.000.
Eu coloco esse valor para rodar o JProgressBar e ele demora muito mais que 5 minutos.
Queria saber como resolver isso!!
[color=red]package Diversos;
import java.lang.;
import java.awt.;
import java.awt.event.;
import com.sun.java.swing.;
import javax.swing.*;
public class JProgress extends JPanel {
Thread hilo;
Object objeto = new Object();
boolean pideParar = false;
JTextField texto;
JProgressBar barra;
public JProgress() {
setLayout( new BorderLayout() );
texto = new JTextField();
add( texto,BorderLayout.NORTH );
JPanel panelInferior = new JPanel();
barra = new JProgressBar();
panelInferior.setLayout( new GridLayout(0,1) );
panelInferior.add( barra );
panelInferior.add( new JLabel( "Cargando..." ) );
JPanel panelBotones = new JPanel();
JButton botonArranque = new JButton( "Arrancar" );
botonArranque.setBackground( SystemColor.control );
panelBotones.add( botonArranque );
botonArranque.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
iniciaCuenta();
}
} );
JButton botonParar = new JButton( "Parar" );
botonParar.setBackground( SystemColor.control );
panelBotones.add( botonParar );
botonParar.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
detieneCuenta();
}
} );
panelInferior.add( panelBotones );
add( panelInferior,BorderLayout.SOUTH );
}
public void iniciaCuenta() {
if( hilo == null ) {
hilo = new ThreadCarga();
pideParar = false;
hilo.start();
}
}
public void detieneCuenta() {
synchronized( objeto ) {
pideParar = true;
objeto.notify();
}
}
class ThreadCarga extends Thread {
public void run() {
int min = 0;
int max = 300000;
barra.setValue( min );
barra.setMinimum( min );
barra.setMaximum( max );
for (int i=min; i <= max; i++ ) {
barra.setValue( i );
texto.setText( ""+i );
synchronized( objeto ) {
if( pideParar )
break;
try {
objeto.wait( 100 );
} catch( InterruptedException e ) {
// Se ignoran las excepciones
}
}
}
hilo = null;
}
}
public static void main( String args[] ) {
JFrame frame = new JFrame( "Tutorial de Java, Swing" );
frame.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent evt ) {
System.exit( 0 );
}
});
frame.getContentPane().add( new JProgress(),BorderLayout.CENTER );
frame.setSize( 400,150 );
frame.setVisible( true );
}
}[/color]