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 |
---|
| 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());
}
}
|
|
|