Sto giocando un po 'con la classe grafica Java e mi stavo chiedendo - quando è necessario chiamare il metodo repaint()
? Ho provato a commentarlo e non sembrava influenzare la mia GUI di output. Ho visto che ha usato molto nel codice della GUI Java che ho letto, però. Qualcuno dispiacerebbe spiegare quando usarlo e quando non usarlo?repaint() Metodo in Java
risposta
Non è mai veramente necessario nella maggior parte delle applicazioni swing, perché lo gestiscono automaticamente (per operazioni comuni come la modifica dei valori di testo sui pulsanti e l'aggiunta di dati a una casella di riepilogo).
Generalmente, è solo se è stata apportata una sorta di modifica che l'oscillazione non viene rilevata automaticamente, ad esempio, non si sta utilizzando un gestore di layout e si stanno ridimensionando i componenti manualmente (in quanto normalmente il gestore di layout ripristina il suo componenti quando necessario).
Quando si avvia l'applicazione, si "dipinge" la GUI.
È necessario chiamare repaint()
quando si desidera rielaborare la GUI perché è stato modificato qualcosa all'interno.
Se si desidera eliminare un pulsante, è necessario rimuoverlo (o renderlo invisibile), quindi è necessario chiamare validate()
o repaint()
per ricalcolare (ridisegnare) la GUI.
Il repaint()
aggiorna la vista (componente), quindi ogni volta che si apportano modifiche al componente, è necessario chiamarlo. Per esempio, se si ruota il componente grafico, è necessario effettuare una chiamata a repaint()
al fine di vedere il cambiamento del componente contenente
Grazie per la spiegazione! In realtà sto cercando di rendere la mia grafica tale che quando un utente fa clic sull'asse x (è una trama di velocità del suono), il grafico si ingrandirà su quella particolare parte del grafico. Sono un po 'bloccato su come farlo. Hai qualche idea? –
Questo è quello che probabilmente farei: Ottieni il coordonato del punto su cui ho fatto clic, dato da 'getX()' e 'getY()'. Quindi crea un grafico ** g ** che sarà l'area che voglio mostrare e 'ripain (g)'. –
L'unica roba che posso pensare:
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();
Supponiamo di avere la sopra il codice nel costruttore di un JDialog. Cosa updateStatusLabel esegue il controllo di una variabile booleana, pubblica o impostabile tramite un metodo, e imposta l'icona di una JLabel in base a tale valore booleano. Se non si convalida e si ridisegna la GUI, la modifica non verrà mostrata fino a quando non viene lanciato un altro evento, molto probabilmente un triggerato dall'utente. E, se l'utente è in attesa che l'etichetta mostri una determinata icona a causa di, diciamo, indica se un dispositivo è raggiungibile attraverso Internet, non interagirà mai (o, almeno, stai ritardando le interazioni così tanto).
- 1. repaint() in Java
- 2. Metodo Repaint() che chiama in un'altra classe
- 3. repaint() in Java non "ri-dipinge" immediatamente?
- 4. Java hangman game repaint() non funzionante
- 5. CellRenderer Repaint
- 6. IE10 Repaint/Ridisegna problema
- 7. repaint() non funziona
- 8. metodo clone() in Java
- 9. Metodo ArrayList.toArray() in Java
- 10. Qt - (? Lenta repaint) Moving finestra senza telaio
- 11. Evidenziazione sintassi RichTextBox in tempo reale - Disabilitazione del repaint
- 12. Metodo parametri d'ordine in Java
- 13. Understanding Collections.reverseOrder() metodo in Java
- 14. parametro finale in un metodo in Java
- 15. Java: metodo JIT inlining
- 16. java: clone metodo violazione
- 17. metodo Java Reflection getConstructor
- 18. update() o repaint() non riesce ad attivare paintEvent()
- 19. Qual è la differenza tra reflow e repaint?
- 20. Qual è la differenza tra Refresh, Update e Repaint?
- 21. Chiamare un metodo di sottoclasse in Java
- 22. Variabile e metodo shadowing in Java
- 23. Come utilizzare il metodo readline() in Java?
- 24. Come restituire un metodo booleano in java?
- 25. Implementazione del metodo equals in java
- 26. Dimensione massima di un metodo in java?
- 27. alias classe o un metodo in Java
- 28. Metodo mancante in Java o PHP
- 29. Il comportamento di equals (metodo) in Java
- 30. Ritorno dinamico Tipo in metodo Java
Grazie mille! –