有一个名为播放器的java类,如下所示:
public class Player {
private String playerName;
private int score;
public Player(String playerName) {
this.playerName = playerName;
this.score = 0;
}
public void incrementScore(int by) {
this.score+=by;
}
public String getPlayerName() {
return this.playerName;
}
}
我只是想知道,一旦 Player 实例更改其分数,哪种正确方法可以更新 UI,例如提供的 UI:
public class PlayerUI extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage primaryStage) throws Exception {
Player player = new Player("Mario");
VBox box = new VBox();
box.setSpacing(20.);
box.setPadding(new Insets(20.));
Text playerName = new Text("Player: " + player.getPlayerName());
Text score = new Text("Score: " + player.getPlayerScore());
Button incrementScore = new Button("Score up");
incrementScore.setOnAction(new IncrementScoreHandler(player, score));
box.getChildren().add(playerName);
box.getChildren().add(score);
box.getChildren().add(incrementScore);
Scene mainScene = new Scene(box);
primaryStage.setScene(mainScene);
primaryStage.setResizable(false);
primaryStage.show();
}
}
我使用事件处理程序执行此操作,该处理程序将播放器和所涉及的节点作为构造函数中的参数接收。
public class IncrementScoreHandler implements EventHandler<ActionEvent> {
private Player player;
private Text scoreText;
public IncrementScoreHandler(Player player, Text score) {
this.player = player;
this.scoreText = score;
}
@Override
public void handle(ActionEvent event) {
player.incrementScore(1);
this.scoreText.setText("Score: " + player.getPlayerScore());
}
}
它是正确的吗?重构、让和得分更好吗?PlayerplayerNameStringPropertyIntegerProperty
开心每一天1111
相关分类