j progress bar

18
Descripción del uso que se da a la Componente, en el contexto de su aplicac Una tarea ejecutándose en un programa puede tardar un poco en completarse. U programa amigable proporciona alguna indicación al usuario sobre lo que puede ta tarea y lo que ya lleva realizado. El paquete Swing proporciona tres clases para ayudar a crear GUIs que monito y muestren el progreso de tareas de larga duración. Una de ellas es el componente JprogressBar . JprogressBar : Una barra de progreso muestra gráicamente qu! cantidad total de la se esta ejecutando. "qu# podemos ver un ejemplo de una peque$a aplicación que utiliza una barra progreso para medir el progreso de una tarea que se ejecuta Un ejemplo% la orma mas conocida de este componente &'rogressbar( es cuando se i los sotware y aparece un barra que en porcentaje va desde )*+)), siendo el +)), completa del programa . Un &progress-ar( muestra un componte orizontal( de orma que al darle la partida de un evento( que puede ser de un &-utton u otro componente que se desee( aparezc orma de barra que se va llenando durante la ejecución. Ejemplo 1:ProgressBar.java import java.io.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.border.*; import javax.swing.colorchooser.*; import javax.swing.filechooser.*; import javax.accessibility.*; import java.awt.*; import java.awt.event.*; import java.beans.*; import java.util.*; import java.io.*; import java.applet.*;

Upload: julio-cesar-salud

Post on 07-Oct-2015

21 views

Category:

Documents


1 download

DESCRIPTION

j Progress Bar

TRANSCRIPT

Descripcin del uso que se da a la Componente, en el contexto de su aplicacin

Descripcin del uso que se da a la Componente, en el contexto de su aplicacin Una tarea ejecutndose en un programa puede tardar un poco en completarse. Un programa amigable proporciona alguna indicacin al usuario sobre lo que puede tardar la tarea y lo que ya lleva realizado.

El paquete Swing proporciona tres clases para ayudar a crear GUIs que monitoricen y muestren el progreso de tareas de larga duracin. Una de ellas es el componente JprogressBar.

JprogressBar : Una barra de progreso muestra grficamente qu cantidad total de la tarea se esta ejecutando.

Aqu podemos ver un ejemplo de una pequea aplicacin que utiliza una barra de progreso para medir el progreso de una tarea que se ejecuta

Un ejemplo: la forma mas conocida de este componente JProgressbar, es cuando se instala los software y aparece un barra que en porcentaje va desde 0-100% siendo el 100% la carga completa del programa.

Un JprogressBar, muestra un componte horizontal, de forma que al darle la partida a travs de un evento, que puede ser de un JButton u otro componente que se desee, aparezca en forma de barra que se va llenando durante la ejecucin.

Ejemplo 1:ProgressBar.java

import java.io.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.text.*;

import javax.swing.border.*;

import javax.swing.colorchooser.*;

import javax.swing.filechooser.*;

import javax.accessibility.*;

import java.awt.*;

import java.awt.event.*;

import java.beans.*;

import java.util.*;

import java.io.*;

import java.applet.*;

import java.net.*;

public class ProgressBar extends JFrame implements ActionListener

{

String value;

javax.swing.Timer timer1;

javax.swing.Timer timer2;

JPanel panel1 = new JPanel();

JPanel panel2 = new JPanel();

JPanel PanelPrincipal = new JPanel();

JProgressBar progressBar1;

JProgressBar progressBar2;

JTextArea progressTextArea1=new JTextArea(10,12);

JTextArea progressTextArea2=new JTextArea(10,12);

JButton BotonOk1 = new JButton("Ok");

JButton BotonOk2 = new JButton("Ok");

Container Contenedor;

public ProgressBar()

{

Contenedor = getContentPane();

JFrame FramePrincipal = new JFrame("Ejemplo de ProgressBar");

FramePrincipal.addWindowListener( new WindowAdapter( )

{

public void windowClosing( WindowEvent e )

{

System.exit( 0 );

}

}

);

progressTextArea1.setTabSize(20);

progressTextArea2.setTabSize(20);

PanelPrincipal.setLayout(new GridLayout(2,1));

progressBar1 = new JProgressBar(JProgressBar.HORIZONTAL, 0,text1.length()) {

public Dimension getPreferredSize() {

return new Dimension(300, super.getPreferredSize().height);

}

};

progressBar2 = new JProgressBar(JProgressBar.HORIZONTAL, 0,text2.length()) {

public Dimension getPreferredSize() {

return new Dimension(300, super.getPreferredSize().height);

}

};

BotonOk1.addActionListener(this);

panel1.add(progressTextArea1);

panel1.add(progressBar1);

panel1.add(BotonOk1);

progressBar1.setStringPainted(true);

BotonOk2.addActionListener(this);

panel2.add(progressTextArea2);

panel2.add(progressBar2);

panel2.add(BotonOk2);

progressBar2.setStringPainted(true);

PanelPrincipal.add(panel1);

PanelPrincipal.add(panel2);

Contenedor.add(PanelPrincipal,BorderLayout.NORTH);

progressBar1.getAccessibleContext().setAccessibleName(getString(""));

progressBar2.getAccessibleContext().setAccessibleName(getString(""));

FramePrincipal.setContentPane(PanelPrincipal);

FramePrincipal.pack();

FramePrincipal.show();

}

public void actionPerformed(ActionEvent e)

{

Object Item = e.getSource();

if (Item == BotonOk1)

{

timer1 = new javax.swing.Timer(18, crearAccion1());

timer1.start();

}

if (Item == BotonOk2)

{

timer2 = new javax.swing.Timer(18, crearAccion2());

timer2.start();

}

}

int texto = 0;

int texto2=0;

String text1 = getString("Este es un ejemplo\nde ProgressBar\nmostrando el tiempo\nque toma en leer este\nString");

public Action crearAccion1() {

return new AbstractAction("cargar") {

public void actionPerformed (ActionEvent e) {

if(progressBar1.getValue() < progressBar1.getMaximum()) {

progressBar1.setValue(progressBar1.getValue() + 1);

progressTextArea1.append(text1.substring(texto, texto+1));

texto++;

} else {

if(timer1 != null) {

timer1.stop();

timer1 = null;

}

}

}

};

};

String text2 = getString("prueba corta");

public Action crearAccion2() {

return new AbstractAction("cargar") {

public void actionPerformed (ActionEvent e) {

if(progressBar2.getValue() < progressBar2.getMaximum()) {

progressBar2.setValue(progressBar2.getValue() + 1);

progressTextArea2.append(text2.substring(texto2, texto2+1));

texto2++;

} else {

if(timer2 != null) {

timer2.stop();

timer2 = null;

}

}

}

};

};

public String getString(String key)

{

value = key;

return value;

}

public static void main(String[] args) {

ProgressBar demo = new ProgressBar();

}

}

se genera la siguiente salida

al hacer clic sobre los botones OK aparece algo como esto

en donde se aprecia la diferencia entre ambos string, el string de arriba le toma mas tiempo en completar el ProgressBar, mientras que el string de abajo se demora mucho menos por ser un string muy corto a diferencia del de arriba.

NOTA : en esta parte se va explicar el componte progressbar como si fuera uno solo.

El constructor usado para crear la barra de progreso selecciona los valores mximo y mnimo de la barra. Tambin se pueden seleccionar estos valores con los mtodos setMinimum y setMaximum. Los valores mnimo y mximo utilizados en este programa son 0 y la longitud de la tarea, lo que es tpico de muchos programas y tareas. Sin embargo, los valores mximo y mnimo de una barra de progreso pueden ser cualquier valor, incluso negativos. El cdigo tambin selecciona el valor actual de la barra a 0.

private JProgressBar progressBar = new JProgressBar(0, task.getLengthOfTask());

Los valores mnimo, actual, y mximo deben relacionarse de esta forma.

minimum