Java FXML Tableview 与 ArrayList

标签 java javafx

嘿,大家好,我正在尝试为大学项目的 Jump&Run 游戏制作一个得分列表,我正在将具有 nicknamefinalScore 属性的 Player 类的数据保存在 ArrayList 中。我想在 FXML TableView 中显示数据,但它不起作用,只显示任何内容。

我已经尝试将属性声明为 SimpleString/IntegerProperty 但它没有改变。

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

最佳答案

你可以尝试一些改变

 Nickname.setCellValueFactory(col ->new SimpleStringProperty(col.getValue().getNickName());
 Score.setCellValueFactory(col ->new SimpleIntegerProperty(col.getValue().getFinalScore());

如果它有效,您必须查看 cellFactory 的名称约定

关于Java FXML Tableview 与 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56595057/

相关文章:

java - 开关机一次后按钮停止工作

java - 编辑 TableColumn 时出现 ClassCastException

java - 从 TableView 内的按钮列中删除行 [Java]

javascript - 如何获取servlet中从ajax调用传递过来的数组

java - 组合框标签未格式化

JavaFX编程ActionHandler

java - 当另一个组合框的值更改时,如何更改组合框的项目?

java - Cassandra 增量计数器有 1 次更新吗?

java - 将韩文音节分解为字母 (jamo)

java - 可以/应该编写一个与对象的 equals 方法一致的比较器