2017-01-29 14 views
0

Так что в основном в короткие сроки я занимаюсь типом игры в формате rpg, у которого есть инвентарь в виде TableView, и я хочу, чтобы мои объекты отображались там, но пока что похоже, не работает. Все идентификаторы fx установлены, но всякий раз, когда я запускаю все, что я вижу, это один столбец пустых полей, которые можно выбрать.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); 
    } 
} 

Код для класса Items:

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). –

 Смежные вопросы

  • Нет связанных вопросов^_^