Sono un principiante Java e sto provando a creare un semplice programma di cronometro che visualizza l'ora su una GUI swing. La creazione del cronometro è semplice, tuttavia non riesco a trovare un modo per aggiornare la GUI ogni secondo e visualizzare l'ora corrente sul cronometro. Come posso fare questo?Java Stopwatch che aggiorna la GUI ogni secondo?
risposta
Qualcosa in questo senso dovrebbe farlo:
import java.awt.EventQueue;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JLabel;
/** @see https://stackoverflow.com/a/11058263/230513 */
public class Clock {
private Timer timer = new Timer();
private JLabel timeLabel = new JLabel(" ", JLabel.CENTER);
public Clock() {
JFrame f = new JFrame("Seconds");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(timeLabel);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
timer.schedule(new UpdateUITask(), 0, 1000);
}
private class UpdateUITask extends TimerTask {
int nSeconds = 0;
@Override
public void run() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
timeLabel.setText(String.valueOf(nSeconds++));
}
});
}
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
final Clock clock = new Clock();
}
});
}
}
Il timeLabel
sarà sempre visualizzare il numero di secondi il timer è stato in funzione.
Ho realizzato la GUI utilizzando l'editor visuale di netbeans, come posso fare riferimento a una jlabel all'interno della GUI? – Dangerosking
@trashgod quale parte richiede un invokeLater? – GETah
@GETah Il metodo 'run()' di 'UpdateUITask', poiché un java.util.Timer lo eseguirà fuori dall'EDT. – millimoose
- 1. ViewModel si aggiorna ogni secondo?
- 2. GUI Java, Cambia pannello secondo actionListener
- 3. Come visualizzare gli ultimi 10 DataPoints in un grafico che si aggiorna ogni secondo?
- 4. MouseMove ripetendo ogni secondo
- 5. Esegui comando ogni secondo
- 6. Corrispondenza ad ogni secondo occorrenza
- 7. GUI di Sudoku che utilizzano java
- 8. Come posso eseguire un'applicazione Java GUI su un Linux senza testa che non supporta la GUI?
- 9. Stopwatch è davvero rotto?
- 10. Come posso ottimizzare questa query PostgreSQL che aggiorna ogni riga?
- 11. StopWatch vs Timer - Quando utilizzare
- 12. Passare attraverso la GUI in Java
- 13. Come dovrei organizzare la mia GUI Java?
- 14. aggiorna la finestra della console con java
- 15. Esegui codice ogni secondo utilizzando System.currentTimeMillis()
- 16. Come si esegue una funzione ogni secondo
- 17. Librerie GUI Java
- 18. GUI Python da Java
- 19. Alternative della GUI Java
- 20. Framework GUI Java
- 21. Framework GUI per Java
- 22. Come elaborare ogni secondo file in bash?
- 23. Selezionare ogni secondo elemento dall'array utilizzando lambda
- 24. Gunicorn crea lavoratori in ogni secondo
- 25. RedirectToAction che non aggiorna la pagina
- 26. Oracle SQL aggiorna ogni ennesima riga
- 27. È possibile programmare i thread Quartz per funzionare ogni secondo?
- 28. Come utilizzare StopWatch più volte in C#?
- 29. Java JFrame che non aggiorna le impostazioni di un pulsante
- 30. GUI avanzata Possibile in Java?
Utilizzare la classe 'Timer' di' Swing'. Ulteriori informazioni sull'uso del 'Timer' sono disponibili, ad esempio, [nella domanda e in particolare le risposte ad esso.] (Http://stackoverflow.com/q/11053097/613495) – Boro
Vedi anche questa [risposta] (http://stackoverflow.com/a/5529043/230513). – trashgod
Sì, lo so che ce l'ho da qualche parte [una delle mie risposte relative all'uso di 'Timer'] (http://stackoverflow.com/a/5911514/613495). @trashgod molto bella risposta/campione +1 qui e +1 lì ... e io sono senza voti ... per oggi :) – Boro