Привет, ребята. Я пытаюсь составить список результатов для игры Jump & Run для проекта в университете. Я сохраняю данные класса Player
с атрибутами nickname
и finalScore
в ArrayList
. Я хочу показать данные в FXML TableView
, но они не будут работать и только не будут отображать контент.
Я уже пытался объявить атрибуты как SimpleString
/ IntegerProperty
s, но они не изменились.
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;
}