2017-01-29 74 views
0

所以基本上我在短期內做了一個RPG類型的遊戲,它有一個作爲TableView的庫存,我希望我的項目在那裏顯示,但到目前爲止,似乎不太好。所有的fx id都被設置好了,但是每當我運行所有我看到的就是一列可以選擇的空框。JavaFx我放在我的TableView中的項目沒有顯示

這是我TableViev代碼:

public class InventoryScreenController implements Initializable { 

    @FXML private TableView<Items> table; 
    @FXML private Button equipButton; 
    @FXML private Button sortButton; 
    @FXML private TableColumn<Items, String> name; 
    @FXML private TableColumn<Items, Integer> value; 

    public final ObservableList<Items> list = 
     FXCollections.observableArrayList(new Items("huhhh",10)); 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     name.setCellValueFactory(new PropertyValueFactory<Items, String>("Name")); 
     value.setCellValueFactory(new PropertyValueFactory<Items, Integer>("Value")); 
     table.setItems(list); 
    } 
} 

代碼爲項目類:

public class Items { 

    private final SimpleStringProperty name; 
    private final SimpleIntegerProperty value; 

    public Items(String name, int value) { 
     this.name = new SimpleStringProperty(name); 
     this.value = new SimpleIntegerProperty(value); 
    } 
} 

這是輸出窗口的樣子:

enter image description here

回答

0

您必須添加訪問器:

public class Items { 

    private final SimpleStringProperty name; 
    private final SimpleIntegerProperty value; 

    public Items(String name, int value) { 
     this.name = new SimpleStringProperty(name); 
     this.value = new SimpleIntegerProperty(value); 
    } 

    public StringProperty nameProperty() { return name; } 
    public StringProperty valueProperty() { return value; } 
} 
+1

這是不太可能,這是不是在fxml中完成...至少截圖顯示了與文字相似的2列... – fabian

+0

我還沒有看到圖像,現在編輯帖子。 – Aubin

+0

這不行。 'getName()'應該返回一個'String'; 'nameProperty()'應該返回'StringProperty'。請參閱http://stackoverflow.com/questions/18971109/javafx-tableview-not-showing-data-in-all-columns,或只是[Oracle教程](http://www.oracle.com/pls/topic /查找?CTX = javase80&ID = JFXBD107)。 –