¿Problema con barra de progreso en java?
Estoy aprendiendo Java con Netbeans y tengo un problema con una gui de una barra de progreso, el caso es que la barra de progreso en cuestión me sale, lo que no me sale es el movimiento, y debo ser torpe por que lo estoy cogiendo de un tutorial que si funciona, pero a mi no se me mueve. Espero que alguien me pueda ayudar.
Aqui el codigo.
import javax.swing.*;
import java.awt.*;
public class BarradeProgreso extends JFrame{
int num = 0;
//ESTA VARIABLE LA HE DECLARADO AQUI PARA QUE LA FUNCION moviendobarraprogreso()
//PUEDA UTILIZAR LA BARRA DE PROGRESO CREADA
JProgressBar actual;
public BarradeProgreso() {
super("Barra de progreso");
setSize(205, 68);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//GESTOR DE DISEÑO
FlowLayout diseño=new FlowLayout();
setLayout(diseño);
//creamos barra de progreso
actual = new JProgressBar(0, 2000);
//EL SET VALUE DICE QUE CANTIDAD DE PROGRESO TIENE
actual.setValue(0);
//muestra el porcentaje en la barra de progreso
actual.setStringPainted(true);
//añadimos este componente a la barra de progreso
add(actual);
// setVisible(true);
}
//ESTA FUNCION LE DA MOVIMIENTO A LA BARRA DE PROGRESO
public void moviendo()
{
while(num < 2000)
{actual.setValue(num);
try
{Thread.sleep(1000); }
catch
(InterruptedException e)
{num+=95;}
}
}
public static void main(String[] args) {
BarradeProgreso marco =new BarradeProgreso();
marco.setVisible(true);
marco.moviendo();
//
//HACEMOS EL MARCO VISIBLE
// marco.setVisible(true);
}
}
Para mi que el fallo esta aquí
public void moviendo()
{
while(num < 2000)
{actual.setValue(num);
try
{Thread.sleep(1000); }
catch
(InterruptedException e)
{num+=95;}
}
}
Por que lo demás si funciona, y la verdad que no entiendo muy bien el bucle, ya que lo del try y el catch no sabia que se podía usar en bucles ¿no habría alguna forma de hacer lo mismo de forma más sencilla? ¿Por qué falla el código?
Aqui el codigo.
import javax.swing.*;
import java.awt.*;
public class BarradeProgreso extends JFrame{
int num = 0;
//ESTA VARIABLE LA HE DECLARADO AQUI PARA QUE LA FUNCION moviendobarraprogreso()
//PUEDA UTILIZAR LA BARRA DE PROGRESO CREADA
JProgressBar actual;
public BarradeProgreso() {
super("Barra de progreso");
setSize(205, 68);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//GESTOR DE DISEÑO
FlowLayout diseño=new FlowLayout();
setLayout(diseño);
//creamos barra de progreso
actual = new JProgressBar(0, 2000);
//EL SET VALUE DICE QUE CANTIDAD DE PROGRESO TIENE
actual.setValue(0);
//muestra el porcentaje en la barra de progreso
actual.setStringPainted(true);
//añadimos este componente a la barra de progreso
add(actual);
// setVisible(true);
}
//ESTA FUNCION LE DA MOVIMIENTO A LA BARRA DE PROGRESO
public void moviendo()
{
while(num < 2000)
{actual.setValue(num);
try
{Thread.sleep(1000); }
catch
(InterruptedException e)
{num+=95;}
}
}
public static void main(String[] args) {
BarradeProgreso marco =new BarradeProgreso();
marco.setVisible(true);
marco.moviendo();
//
//HACEMOS EL MARCO VISIBLE
// marco.setVisible(true);
}
}
Para mi que el fallo esta aquí
public void moviendo()
{
while(num < 2000)
{actual.setValue(num);
try
{Thread.sleep(1000); }
catch
(InterruptedException e)
{num+=95;}
}
}
Por que lo demás si funciona, y la verdad que no entiendo muy bien el bucle, ya que lo del try y el catch no sabia que se podía usar en bucles ¿no habría alguna forma de hacer lo mismo de forma más sencilla? ¿Por qué falla el código?
Respuesta de dimondi21
1