JavaFX-TableView不填充数据

时间:2018-12-30 18:52:50

标签: java javafx tableview

我正在为一个学校项目工作,但在让我的表填充数据时遇到了麻烦。在尝试将其实现到GUI之前,我创建了Tableview类作为测试。它应该在一个表中添加2行,我可以看到这些行,因为我可以单击它们,但是没有数据显示。这让我沮丧了几个小时,因此不胜感激。预先感谢!

修改 我知道下面的代码不会显示此内容,但是我所有的类都在同一包中。

1 个答案:

答案 0 :(得分:0)

我刚刚在您的Part类中添加了公共获取器和设置器,并且一切正常。 正如@Zephyr所提到的,您有一些奇怪的getter和setter,您可能应该检查一下体系结构。所有的获取器和设置器必须是公共的,以便JavaFx可以将值注入到对象中。这里是经过纠正的Part类:

public abstract class Part {
    private int partID;
    private String name;
    private double price;
    private int inStock;
    private int min;
    private int max;
    static int partIDCount = 1;
    private SimpleStringProperty tablePartID;
    private SimpleStringProperty tablePartName;
    private SimpleStringProperty tableInvLvl;
    private SimpleStringProperty tablePrice;



    void setName(String name){
        this.name = name;
    }

    String getName(){
        return this.name;
    }

    void setPrice(double price){
        this.price = price;
    }

    double getPrice(){
        return this.price;
    }

    void setInStock(int inStock){
        this.inStock = inStock;
    }

    int getInStock(){
        return this.inStock;
    }

    void setMin(int min){
        this.min = min;
    }

    int getMin(){
        return this.min;
    }

    void setMax(int max){
        this.max = max;
    }

    int getMax(){
        return this.max;
    }

    void setPartID(int partID){
        this.partID = partID;
    }

    int getPartID(){
        return this.partID;
    }

    void setTablePartID(){
        this.tablePartID = new SimpleStringProperty(Integer.toString(this.partID));
    }

    SimpleStringProperty getTablePartID(){
        return this.tablePartID;
    }

    void setTablePartName(){
        this.tablePartName = new SimpleStringProperty(this.name);
    }

    SimpleStringProperty getTablePartName(){
        return this.tablePartName;
    }

    void setTableInvLvl(){
        this.tableInvLvl = new SimpleStringProperty(Integer.toString(inStock));
    }

    SimpleStringProperty getTableInvLvl(){
        return this.tableInvLvl;
    }

    void setTablePrice(){
        this.tablePrice = new SimpleStringProperty(Double.toString(price));
    }

    SimpleStringProperty getTablePrice(){
        return this.tablePrice;
    }

    public SimpleStringProperty tablePartIDProperty() {
        return tablePartID;
    }

    public void setTablePartID(String tablePartID) {
        this.tablePartID.set(tablePartID);
    }

    public SimpleStringProperty tablePartNameProperty() {
        return tablePartName;
    }

    public void setTablePartName(String tablePartName) {
        this.tablePartName.set(tablePartName);
    }

    public SimpleStringProperty tableInvLvlProperty() {
        return tableInvLvl;
    }

    public void setTableInvLvl(String tableInvLvl) {
        this.tableInvLvl.set(tableInvLvl);
    }

    public SimpleStringProperty tablePriceProperty() {
        return tablePrice;
    }

    public void setTablePrice(String tablePrice) {
        this.tablePrice.set(tablePrice);
    }
}