Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Her er noen oppgaver for å lære å programmere med FXML, som bygger videre på FXML-oppgavene.

Her en liten oppskrift på hvordan GUI-delen av programmet programmeres:

fx:id-attributt og Java-variabel

Alle delene av skjermbildet som programmet skal kunne forandre på, f.eks. gjøre synlig eller usynlig, endre teksten eller posisjonen til osv. må ha en fx:id. Denne du legge inn med Scene Builder eller FXML-editoren. FXML-en kan f.eks. se slik ut:

Code Block
<Text fx:id="statusText" .../>

 I Java-koden må du lage en variabel med samme navn som denne fx:id-en, og typen til variablen må tilsvare typen element, f.eks Text for tekst, Line for strek:

Code Block
@FXML
Text statusText;

Du kan selvfølgelig lage andre varibler også, for å holde rede på alt som trengs for å spillet til å virke.

Java-metode og onHendelse-attributt

Alt brukeren gjør og som programmet skal reagere på, må gjøres av en hendelsesmetode (samme som funksjon i Python). I FXML-en må du legge inn navnet på denne metoden i det samme elementet som skal trigge metoden og med # foran. Hvis programmet skal reagere på en knapp, så må f.eks. FXML-en se slik ut:

Code Block
<Button onAction="#herErNavnetPåMetoden" ...>

 I Java-koden må metoden se slik ut:

Code Block
@FXML
void herErNavnetPåMetoden() {
	// her legges koden for det som skal skje
}

I koden i hendelsesmetodene så kan en bruke variablene for elementene som har fx:id-attributter, til å endre på skjermbildet, og dermed skape liv i skjermbildet! Hvis statusText er definert som vist over, så kan du f.eks. skrive statusText.setText("Melding fra programmet: ..."), for å gi en beskjed til brukeren.

 

Oppgave 1 - Hangman

I Hangman-spillet skal spilleren prøve å gjette et hemmelig ord, ved å foreslå bokstaver. Før en har begynt å gjette, så vises bare ordet som masse _-tegn, med én for hver bokstav i ordet. Strekmannen er usynlig i starten. Hvis en gjetter en bokstav som er i ordet, så vises de frem. Hvis en derimot gjetter feil, så vises en ny del av strekmannen frem, og når hele strekmannen er synlig, så har brukt opp alle forsøkene og spillet er tapt!

...