JavaFX - TableView не заполняется данными - PullRequest
0 голосов
/ 30 декабря 2018

Я работаю над проектом для школы, и у меня возникают проблемы с заполнением моей таблицы данными.Я создал класс Tableview в качестве теста, прежде чем пытаться внедрить его в свой графический интерфейс.Предполагается добавить 2 строки в таблицу, и я вижу, что строки есть, потому что я могу щелкнуть по ним, но данные не отображаются.Это расстраивало меня часами, поэтому любая помощь будет принята с благодарностью.Заранее спасибо!

Редактировать Я знаю, что мой код ниже не показывает это, но все мои классы находятся в одном пакете.

1 Ответ

0 голосов
/ 30 декабря 2018

Я только что добавил общедоступные методы получения и установки в ваш класс Part, и все работает.Как справедливо заметил @Zephyr, у вас есть странные методы получения и установки, вероятно, вам следует пересмотреть свою архитектуру.Все методы получения и установки должны быть открытыми, чтобы 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);
    }
}
...