import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.text.Font; import javafx.scene.text.Text; import java.time.LocalTime; import javafx.application.Platform; //PROBLEMET FRA TIMEN: /* Vi hadde ikke satt Solution.java til ? v?re public, men en klasse som subklasser Application-klassen M? v?re public. Det er rett og slett en d?rlig feilmelding fra Java sin side. */ public class Solution extends Application { Text hilsen = new Text("Hei!! Tiden er " + naa()); class SekundTeller extends Thread { // En egen traad som oppdaterer klokkeslettet hvert sekund. @Override public void run() { boolean slutt = false; while (! slutt) { try { sleep(1000); } catch (InterruptedException e) { slutt = true; } //1. Sett ny tekst/nytt klokkeslett i "hilsen"-variablen, FYLL INN: //(Hint: se paa hvordan "hilsen" er opprettet..) Platform.runLater(new VisTid()); } } } class VisTid implements Runnable{ @Override public void run(){ hilsen.setText(naa()); } } @Override //3. FYLL INN METODENAVN OG EVT PARAMETRE: public void start(Stage stage) { hilsen.setY(100); hilsen.setFont(new Font("Calibri", 28)); //3. SETT Y-aksen til teksten til aa vaere 100. //4. SETT FONT, opprett font med parameter 100 Pane kulisser = new Pane(); //5. LEGG TIL "hilsen" i kulisser kulisser.getChildren().add(hilsen); //6. Opprett en scene med kulisser.. Scene scene = new Scene(kulisser); //7. SETT tittle paa "teateret": stage.setTitle("Digital klokke"); //8. Sett scenen og vis den! stage.setScene(scene); stage.show(); //9. Opprett og start en "SekundTeller"-traad: Thread t = new SekundTeller(); t.start(); } private static String naa() { // Hva er klokken naa? Svaret er paa formen "12:34:56". LocalTime t = LocalTime.now(); return String.format("%02d:%02d:%02d", t.getHour(), t.getMinute(), t.getSecond()); } public static void main(String[] args) { Application.launch(args); //10. Start applikasjonen } }