Versions Compared

Key

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

...

Alle elementene i FXML-fila kan si fra om hva brukeren gjør med dem. Knapper kan f.eks. si fra når de trykkes på, og tekstfelt kan si fra når teksten inn endres. Dette kalles hendelser (eng: events) og det vi må gjøre er å legge inn koder i FXML-fila som angir hvilken metode i Controller-en som skal kalles for hver type hendelse på de ulike elementene. Hendelsen "knappetrykk" kalles action, og derfor legger en inn onAction="#handleButton" i FXML-koden for en knapp for å kalle handleButton-metoden når akkurat den knappen trykkes. Hvis forskjellige knapper skal ha omtrent samme logikk, så bruker kan en bruke samme metode. F.eks. så skal kalkulatoren gjøre omtrent det samme for alle tall-knappene, så derfor kan en legge onAction="#handleDigitButton" på alle disse. Dette kan gjøres . En må selvsagt huske på å lage handleDigitButton-metoden også. Her er eksempelkode for tall-knappene:

I KalkulatorController.java:

Code Block
languagejava
public class KalkulatorController {
 
	... annen kode ...
 
	@FXML void handleDigitButton(ActionEvent event) {
		... her er kode for tall-knappene ...
	}
}

I KalkulatorApp.fxml

Code Block
languagejavafx
<?xml version="1.0" encoding="UTF-8"?>

<AnchorPane ...	fx:controller="kalkulator.KalkulatorController">
      <Button text="1" onAction="#handleDigitButton" ... />
      <Button text="2" onAction="#handleDigitButton" ... />
 
	... de andre knappene kommer her ...
 
</AnchorPane>

 

Fra Controller til FXML

Fra Kalkulator.fxml til KalkulatorController

...