使用Java中的对象填充ListView

时间:2018-04-10 10:34:35

标签: java listview javafx fxml

我正在尝试使用JavaFX中Object的name属性填充ListView。

我也在使用FXML控制器。

ListView绑定到fx:id stationListView

我设置了ObservableList

@FXML
ObservableList<Station> stations = getStations();

其中getStations();返回分配了各种属性的Station个对象列表,并使用station.getName()访问每个工作站的名称。

如果修改ListView,我可以将Station的名称添加到ListView

//Initialising ListView
@FXML
private ListView stationListView;

//In 'initialise' section of FXML controller
for(Station station:stations) {
        stationListView.getItems().add(station.getName());
  }

但是我想用ListView对象填充Station,以便我可以根据这些对象的其他属性更新TableView

我还是Java的新手,所以任何指向正确方向的人都会受到赞赏。

修改的 我能够使用单元工厂设置ListView中的工作站名称:

stationListView.setCellFactory(new Callback,ListCell&gt;(){

        @Override
        public ListCell<Station> call(ListView<Station> param) {
            final ListCell<Station> cell = new ListCell<Station>() {
                @Override
                public void updateItem(Station item, boolean empty) {
                    super.updateItem(item, empty);
                    if (item != null) {
                        setText(item.getName());
                    }
                }
            };
            return cell;
        }
    });
stationListView.setItems(stations);

但是现在我不知道如何根据TableView

中选择的对象更新ListView

0 个答案:

没有答案