lunes, 11 de junio de 2012

Swing - JProgressBar

Generalmente deseamos que nuestras aplicaciones sean amigables para la persona que las utilice, esto se logra realizando una interfaz clara y sencilla. Lo cual no es nada sencillo, y mas aún si debemos presentar muchos datos en la vista.

Algo que aprendi con el tiempo, es que resulta importante informar a la persona que utiliza la aplicacion, cual es el estado de la misma o como se encuentra el proceso que esta realizando. Comunmente esto lo logramos con barras de progreso que informen que porcentaje se ha realizado de la tarea y cuanto resta.

Java ofrece un componente llamado JProgressBar, el cual es una barra de progreso muy sencilla de utilizar.

Tiene un constructor sencillo:

JProgressBar barra = new JProgressBar(0,100);

Donde 0 es el valor inicial de la barra y 100 el maximo. Tres de los metodos mas importantes que tiene JProgressBar son:


			barra.setMaximum(200);
			barra.setValue(2);
			int valor = barra.getValue();
		

setMaximum(int valor): Define el valor maximo que puede alcanzar la barra, para llenar todo su contenido.

setValue(int valor): Se le define el valor.

Algo importante al momento de utilizar las barras de progreso de java, es complementarlas con threads, de manera que la tarea que ejecutemos se realice en segundo plano.

Un breve ejemplo:

Ejemplo JProgressBar


		
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class EjemploBarraProgreso extends JFrame {
  
  private JProgressBar barra;
  
  public EjemploBarraProgreso() {
    setTitle("Ejemplo");
    
    JPanel panel = new JPanel(new FlowLayout());
    
    barra = new JProgressBar(0,100);

    panel.add(barra);
    
    JButton boton = new JButton("Hola mundo!");
    
    ButtonListener buttonListener = new ButtonListener();
    
    boton.addActionListener(buttonListener);
    
    
    panel.add(boton);
    
    setContentPane(panel);
    
    setVisible(true);
    pack();
  }
  
  
  public static void main(String[] args) {
    EjemploBarraProgreso frame = new EjemploBarraProgreso();
  }
  
  
  public class ButtonListener implements ActionListener {
    
      public void actionPerformed(ActionEvent e) {
        
        TareaBarra tarea = new TareaBarra();
        tarea.start();
        
      }
      
   }
  
  public class TareaBarra extends Thread {
    
    public void run() {
      
      barra.setValue(0);
      
      for (int i = 0; i < 100; i++) {
        
        System.out.println(java.util.Calendar.getInstance().toString());
        
        barra.setValue(barra.getValue()+1);
        
      }
      
      
    }
    
  }
  
}
		

 

 

No hay comentarios:

Publicar un comentario