bar java swing desktop jtextfield jprogressbar

progress bar java



¿Cómo agregar texto en jprogressbar? (8)

Aquí está el enlace del tutorial que muestra cómo establecer el valor (es decir, 10% o 40% ...) según el estado de la barra de progreso http://docs.oracle.com/javase/tutorial/uiswing/components/progress .html

Estoy usando un jprogressbar para indicar el estado de disponibilidad. Quiero mostrar un texto de 40% [suposición] dentro de la barra de progreso . ¿cómo hacerlo? El texto fue cambiado de acuerdo al valor de disponibilidad.


Dos cosas que deberías notar aquí. Esos son,

1) Debe establecer la variable paintString de JProgressBar utilizando el método setStringPainted. Puedes hacer eso como

jprogressBar.setStringPainted (true)

Tienes que hacer esto porque,

isStringPainted ()

El método debe devolver verdadero, si la barra de progreso tiene que mostrar los valores o el porcentaje de progreso en él.

2) Ahora, para personalizar con su valor personalizado, configure su instancia personalizada en jprogressBar usando

jprogressBar.setString (customString)

entonces debería funcionar bien.


Esto mostrará el progreso dentro de la barra.

progressBar.setStringPainted(true);


Esto muestra el porcentaje de progreso dentro de la barra de progreso

progressBar.setStringPainted(true);


No estoy claro si su [assumption] es parte de la cadena que desea mostrar. Si es así, la solución completa sería algo como:

private static final String PROGRESS_MASK = "%d%% [assumption]"; public void someMethod() { ... progressBar.addChangeListener(new ChangeListener() { @Override void stateChanged(ChangeEvent e) { progressBar.setString(String.format(PROGRESS_MASK, progressBar.getValue())); } } progressBar.setStringPainted(true); }

... ya que no podría confiar en la cadena predeterminada que simplemente muestra el porcentaje.


Puedes usar:

Inicializando

progressBar.setStringPainted(true);

Actualizando:

progressBar.setValue(newValue);



  • Utilice setStringPainted(true) para mostrar el porcentaje de trabajo completado.

  • Use setValue() que ayudará a establecer el valor incremental y setString() para mostrar el mensaje final cuando termine ...

Aquí hay un ejemplo de mi base de código:

final JProgressBar bar = new JProgressBar(0 , 100); // 0 - min , 100 - max bar.setStringPainted(true); panel.add(bar); // panel is a JPanel''s Obj reference variable JButton butt = new JButton("start"); butt.addActionListener(){ public void actionPerformed(){ new Thread(new Runnable(){ public void run(){ int x = 0; while(x<=100) { x++; bar.setValue(x); // Setting incremental values if (x == 100 ){ bar.setString("Its Done"); // End message try{ Thread.sleep(200); }catch(Exception ex){ } } }).start(); } });