![]() |
Barra de Progreso Hola, un saludos para todos. Tengo una clase que al ejecutarla, tarda mucho tiempo en terminar. Es por esto que quiero usar una barra de progreso. Leyendo en la Web encontre un ejemplo que mueve una barra, con un proceso sumarizando hasta 1000 un contador. No me doy cuenta en que lugar tengo que poner la clase a ejecutar, que se llama "CalculoProme". Va Ejemplo: public class EMcorroproc extends JPanel { Thread hilo; Object objeto = new Object(); boolean pideParar = false; JTextField texto; JProgressBar barra; public EMcorroproc() { 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( "Presione Arrancar..." ) ); 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 = 100; barra.setValue( min ); barra.setMinimum( min ); barra.setMaximum( max ); for (int i=min; i <= max; i++ ) { barra.setValue( i ); ACA MUEVE LA BARRA texto.setText( ""+i ); MUESTA LA SUMA 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 EMcorroproc(),BorderLayout.CENTER ); frame.setSize( 400,150 ); frame.setVisible( true ); } } GRACIAS AMIGOS................ |
bueno a simplemente veo 2 errores tu calse ThreadCarga no implementa el runnable para poder usar el metodo run ,esta haciendo una clase del Hilo ,la verdad nose si funciona o no ,nunca hice la prueba,pero seria conveniendo q tu main este en otra clase q no sea ThreadCarga Mejor haste una clase Presentacion y ahi pones el main y llamas a una clase q extienda de un jwindow y ahi pones este metodo: public void ejecutarProsgresBar(){ try{ for (int i = 1; i<=100; i++){ Thread.sleep(15);//hacemos q la barra de progreso avance poco a poco barra.setValue(i);//al terminar de cargar la barra se cierre el jwindow (barra es un objeto de JProgressBar) } } catch(Exception err){ } } y despues de ejecutar la barra llamas a tu clase q extiende de jframe ,es solo un ejemplo ,la verdad hay muchas formas de hacerlo |
| La zona horaria es GMT -6. Ahora son las 22:41. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.