【发布时间】:2019-06-14 09:15:56
【问题描述】:
大家好,我正在尝试为大学项目的 Jump&Run 游戏制作记分表,我正在将具有 nickname 和 finalScore 属性的 Player 类的数据保存在 ArrayList 中。我想在 FXML TableView 中显示数据,但它不起作用,只显示没有内容。
我已经尝试将属性声明为SimpleString/IntegerPropertys 但它没有改变。
public class ScoreController implements Initializable {
@FXML
private TableView<Player> table;
@FXML
private TableColumn<Player, String> Nickname;
@FXML
private TableColumn<Player, Integer> Score;
// Creating Observable Array List
private ObservableList<Player> data = FXCollections.observableArrayList();
// Set up the Scene
private Parent scoreList;
void setUp() throws Exception{
scoreList = FXMLLoader.load(getClass().getResource("/fxml/Score.fxml"));
App.scoreList = new Scene(scoreList,800,500);
}
// Adding data to the Observable List and setting Column Factories
@Override
public void initialize(URL url, ResourceBundle rb) {
data.add(new Player("Chris", 11));
data.add(new Player("Agil", 12));
Nickname.setCellValueFactory(new PropertyValueFactory<Player, String>("nickname"));
Score.setCellValueFactory(new PropertyValueFactory<Player, Integer>("finaleScore"));
table.setItems(data);
}
}
我希望 TableColumn 显示 ArrayList 的数据,但 TableView 在此表中仅显示“无内容”。
编辑播放器类
public Player(String nickname, int finalScore){
setNickname(nickname);
setFinalScore(finalScore);
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
void setFinalScore(int score){
finalScore = score;
}
public String getNickname(){
return nickname;
}
public int getFinalScore() {
return finalScore;
}
【问题讨论】:
-
向我们展示类
Player我认为您将 get/setter 命名为错误 -
很可能是duplicate - PropertyValueFactory 的不当使用(正如@Raw 已经指出的那样)。无论如何,要获得调试帮助,您必须提供一个证明问题的minimal reproducible example。与您的问题无关:请学习 java 命名约定并遵守它们