import javafx.application.Application; import javafx.application.Platform; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.Pane; import javafx.scene.text.Font; import javafx.event.*; import java.time.LocalTime; public class Klokke extends Application { Button klokken = new Button(naa()); boolean slutt = false; public static void main(String[] args) { launch(args); } private static String naa() { // Hva er klokken nå? Svaret er på formen "12:34:56". LocalTime t = LocalTime.now(); return String.format("%02d:%02d:%02d", t.getHour(), t.getMinute(), t.getSecond()); } class StoppBehandler implements EventHandler { @Override public void handle(ActionEvent e) { slutt = true; Platform.exit(); } } class SekundTeller extends Thread { // En egen tråd som oppdaterer klokkeslettet hvert sekund. @Override public void run() { while (! slutt) { try { sleep(1000); } catch (InterruptedException e) { Platform.exit(); } Platform.runLater(new VisTid()); } } } class VisTid implements Runnable { @Override public void run() { klokken.setText(naa()); } } @Override public void start(Stage teater) { klokken.setFont(new Font(100)); klokken.setOnAction(new StoppBehandler()); Pane kulisser = new Pane(); kulisser.getChildren().add(klokken); Scene scene = new Scene(kulisser); teater.setTitle("Klokken er"); teater.setScene(scene); teater.show(); new SekundTeller().start(); } }