Versions Compared

Key

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

...

Expand
titleDel 6 - JavaFX og FXML (6 poeng)

Du skal lage en liten JavaFX-app for terningspill basert på Dice-klassen. I første omgang skal du støtte terningkast og poengberegning:

  • Brukeren skal kunne fylle inn et tall ni et tekstfelt (TextField)
  • Når en knapp (Button) trykkes, så skal det lages et Dice-objekt med ntilfeldige tall.
  • Poengverdien til Dice-objektet settes vha. metoden void computeFarkleScore(Dice), som du kan anta finnes.
  • Den tekstlige representasjonen til Dice-objektet skal så vises som en tekst (Label)

 

Følgende FXML er skrevet for appen:

Code Block
<HBoxxmlns:fx="http://javafx.com/fxml/1" fx:controller="ord2018.farkle.fx.DiceController">
   <!--  text field for inputing the die count -->
   <TextField fx:id="dieCountInput" promptText="Die count"/>
   <!--  button for throwing the dice, i.e. create a Dice object and computing the score -->
   <Button onAction="#handleThrowDice" text="Throw dice"/>
   <!--  label for outputing the textual representation of the Dice object -->
   <Label fx:id="diceOutput" text="No dice thrown, yet"/>
</HBox>

Skriv en JavaFX-kontroller som implementerer ønsket oppførsel. Den skal passe til den oppgitte FXML-en og bruke klasser og metoder beskrevet tidligere i oppgavesettet.

Hvis det er detaljer du er usikker på, så forklar med tekstkommentarer i koden.

Expand
titleLF

Her er vi mest opptatt av:

  • @FXML-annotasjonene
  • riktig type og navn for variablene og metoden
  • at en henter input fra dieCountInput og setter output med diceOutput

 

Code Block
public class DiceController {
 
   @FXML
   private TextField dieCountInput;
 
   @FXML
   private Label diceOutput;
 
   @FXML
   public void handleThrowDice() {
      Dice dice = new Dice(Integer.valueOf(dieCountInput.getText()));
      computeFarkleScore(dice); // var jo oppgitt
      diceOutput.setText(dice.toString());
   }
}