Estoy jugando un poco con la clase de gráficos de Java y me preguntaba: ¿cuándo es necesario llamar al método repaint()
? Intenté comentarlo y no pareció afectar mi GUI de salida. Sin embargo, he visto que se usa mucho en el código GUI de Java que he leído. ¿Alguien le importaría explicar cuándo usarlo y cuándo no usarlo?Método repaint() en Java
Respuesta
Nunca es realmente necesario en la mayoría de las aplicaciones de giro, ya que lo manejan automáticamente (para operaciones comunes como cambiar los valores de texto en los botones y agregar datos a un cuadro de lista).
En general, es solo si ha realizado algún tipo de cambio que el swing no se recuperará automáticamente; por ejemplo, no está utilizando un administrador de diseño y está redimensionando los componentes manualmente (porque normalmente el administrador del diseño repinta su componentes cuando sea necesario).
Cuando inicia su aplicación, "pinta" su GUI.
Debe llamar al repaint()
cuando desee volver a dibujar su GUI porque ha cambiado algo adentro.
Si desea eliminar un botón, necesita quitarlo (o hacerlo invisible), entonces necesita llamar al validate()
o repaint()
para volver a calcular (volver a dibujar) la GUI.
El repaint()
actualiza la vista (componente), por lo que cada vez que realice algún cambio en el componente, debe llamarlo. Por ejemplo, si se gira el componente gráfico, se debe hacer una llamada a repaint()
con el fin de ver el cambio en el componente que contiene
¡Gracias por la explicación! De hecho, intento hacer que mi gráfico sea tal que cuando un usuario hace clic en el eje x (es un gráfico de velocidad del sonido) el gráfico se acerque a esa parte del gráfico en particular. Estoy un poco atascado en cuanto a cómo hacerlo. ¿Tienes alguna idea? –
Esto es lo que probablemente haría: Obtener la coordinación del punto al que hice clic, dado por 'getX()' y 'getY()'. Luego crea un gráfico ** g ** que será el área que quiero mostrar y 'repain (g)'. –
La única cosa que puedo pensar:
new Thread() {
@Override
public void run() {
while (ClassName.this.isVisible()) {
ClassName.this.updateStatusLabel();
ClassName.this.validate();
ClassName.this.repaint(50L);
try {
Thread.sleep(1000);
} catch (final InterruptedException e) {
Log.log(e);
}
}
}
}.start();
Suponga que tiene la encima del código en el constructor de un JDialog. Lo que updateStatusLabel hace es verificar una variable booleana, ya sea pública o configurable a través de un método, y establecer el icono de un JLabel en base a dicho booleano. Si no valida y vuelve a pintar la GUI, la modificación no se mostrará hasta que se produzca otro evento, muy probablemente desencadenado por el usuario. Y, si el usuario está esperando que la etiqueta muestre un determinado ícono por, digamos, que indica que si un dispositivo es accesible a través de Internet, él/ella nunca interactuará (o, al menos, está retrasando las interacciones). tanto).
- 1. Java swing: repaint() vs invalida
- 2. WPF repaint problema
- 3. repaint() no funciona
- 4. update() o repaint() no se activa paintEvent()
- 5. QT Repaint/Redraw/Update/Hacer algo
- 6. Método ArrayList.toArray() en Java
- 7. método clone() en Java
- 8. Java. Método
- 9. método Arcano esPrimo en Java
- 10. Java: método JIT en línea
- 11. Método remoto ilegal en java
- 12. llamar a otro método en el principal método en Java
- 13. Anulando un Método Java
- 14. java: método clone violación
- 15. Java en GPU: Método completo directamente en GPUin Java simple
- 16. ¿Bloqueo de método sincronizado de Java en objeto o método?
- 17. ¿Cómo documentar mi método en Java como documentos Java?
- 18. Método de vinculación/anclaje en Java
- 19. ¿Es catch un método en java?
- 20. Método para concatenar 2 cadenas en Java
- 21. método genérico en Java sin discusión genérica
- 22. Método opcional en la interfaz Java
- 23. Llamadas al método de captura en Java
- 24. java sincronizado en el método ¿No funciona?
- 25. Reflexión del método seguro en Java
- 26. Comentarios sobre el método reemplazado en Java
- 27. Enlazando un método existente en Java
- 28. Java - Thread.sleep en el método principal
- 29. Método parámetros de orden en Java
- 30. Método de tiempo de espera en java
¡Muchas gracias! –