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.

 

. Noen har forklaringer på hvordan en skal gå frem, mens andre overlater mer av jobben til deg. Det kan være lurt å se på FXML-programmeringseksemplet før du begynner, så du forstår litt om hvordan FXML-en kan kobles til Java-koden.

Hello world

Formålet til denne oppgaven er å lære hvordan man får satt opp et Java-prosjekt i Eclipse og kjørt et JavaFX-program. I tillegg skal du lære litt om sammenhengen mellom JavaFX-koden og innholdet i app-vindeuet en får opp.

Denne oppgaven er laget som en leksjon, som leder deg gjennom trinnene: Hello world-leksjonen.

En viktig del av det å lage app-er er å utforme skjerminnholdet, dvs. alt app-en inneholder av grafikk, knapper, lister, osv. Formålet til denne leksjonen er å lære hvordan du kan bruke FXML for å lage skjerminnhold, og to måter å lage slikt innhold. I tillegg skal du lære hvordan du får app-en til å last inn og vise frem innholdet i FXML-filer: FXML-logo-leksjonen.

...

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!

...

Kalkulator (uferdig)

I denne leksjonen vil du lære mer om hvordan koble det grafiske til programkode, så app-en din blir interaktiv:

Kalkulator-leksjonen (nesten ferdig)

Figurstyring

Mange spill går ut på å styre en figur rundt omkring, komme rundt hindringer, unngå farlige ting og plukke opp nyttige ting.

I denne leksjonen så skal du lære om hvordan du kan gjøre dette med JavaFX:

...

 Figurstyring-leksjonen

Kontinuerlig bevegelse (uferdig)

I mange spill beveger figurer seg hele tiden, f.eks. dyr som følger etter deg, eller fordi du faller ned fra en plattform.

I denne leksjonen, som bygger på Figurstyring-leksjonen, så skal du lære om hvordan du kan gjøre dette med JavaFX: Kontinuerlig bevegelse-leksjonen (uferdig)

Klokke

Klokke:

...

Vits eller gåte

Vits: