Red de conocimiento informático - Espacio del host - 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?

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?

paquete socket.fox.msgdeal;

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();

}

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

* 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();

}

}

}

}

}

}

}