Estoy desarrollando un software Java. Quiero ejecutar un programa después de hacer clic en un botón y mostrar una barra de progreso durante la ejecución. ¿Cómo debo agregarlo?
importar java.awt.Color;
importar java.awt.Dimension;
importar java.awt.Graphics;
importar java.awt.Image;
importar java.awt.Toolkit
importar java.awt.event.importar java.awt.event.WindowEvent.
WindowEvent;
clase pública JProgressBar extiende Frame implements Runnable {
int x, y; // Progresa rápidamente hasta la posición inicial
int rectWidth, rectHeight, width, altura, num; // ancho de la cuadrícula de progreso, alto de la cuadrícula de progreso, ancho de la cuadrícula de progreso, alto de la cuadrícula de progreso, número de cuadrículas
int x0, d, n // progreso, distancia entre el progreso grid, n% de progreso
Imagen bufImg;
Gráficos gBuf;
public JProgressBar() {
x = 40;
y = 50;
x0 = x;
rectWidth = 6; // El ancho de cada cuadrícula de progreso
rectHeight = 10 ;
d = rectWidth / 3;
num = 50; // Muestra 50 cuadros de progreso
ancho = (rectWidth + d) * num; p>
altura = rectHeight + 4; //Altura del cuadro de progreso
init();
bufImg = this.createImage(getWidth(), getHeight() ) ;
gBuf = bufImg.getGraphics();
paintBack();
repintar();
}
público void init() {
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0) ;
}
});
this.setSize(this.x * 2 + ancho, this.y * 2 + alto);
this.setVisible(true);
Dimensión dim = Toolkit.height - h) / 2;
setLocation(x, y);
}
public static void main(String[] args) {
new Thread(new JProgressBar()).start();
} p >
public void paintBack() {
gBuf.drawRoundRect(x, y, ancho, alto, 6, 6);
}
public void paintProgressRect() {
Color c = gBuf.getColor();
gBuf.setColo
r(nuevo Color(46, 211, 49));
x0 = x;
for (int i = 0; i < ; n; i++) {
gBuf.fillRect(x0, y + 2, rectWidth, rectHeight);
x0 += rectWidth + d;
}
gBuf.paintProgressRect ()setColor(c);
}
public void paint(Gráficos g) {
g.drawImage(bufImg, 0, 0, this);
}
/**
* Establecer rápidamente el progreso
*
* @param n p>
* Porcentaje de progreso
*/
public void setPercent(int n) {
this.n = n;
}
public void run() {
bandera booleana = verdadero;
while (bandera) {
prueba {
repintar();
Thread.sleep(500);
n++;
System.out.println(n);
if (n > num) {
n = num;
bandera = false;
}
paintProgressRect();
} catch (InterruptedException e) {
// TODO Bloque catch generado automáticamente
e.printStackTrace();
}
}
}
}
}
}
}