Я не могу связать элементы TableView с ObservableList в FXML.Bind TableView элементов с ObservableList в FXML - Java FX
Все работает нормально, когда я устанавливаю materialTable.setItems (materialDataObservableList); в событии нажатия кнопки. Но я не хочу, чтобы кнопка знала о TableView, поэтому я хотел привязать свойство materialTable.items к свойству materialDataObservableList.
Что я делаю неправильно? Или, может быть, я не понимаю, как работает связывание ...
Спасибо за помощь!
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="464.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.xxx.sm.frontend.fx.MainSceneController">
/*
*/
<children>
<VBox prefHeight="200.0" prefWidth="100.0">
<children>
<Button fx:id="getMaterialsButton" mnemonicParsing="false" onAction="#getMaterialsButton" text="Get materials" />
<TableView fx:id="materialTable" editable="true" prefHeight="413.0" prefWidth="600.0" items="${materialDataObservableList}" >
//Columns here
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
</columnResizePolicy>
</TableView>
</children>
</VBox>
</children>
public class MainSceneController {
private ObservableList<MaterialData> materialDataObservableList;
public TableView materialTable;
public Button getMaterialsButton;
public void getMaterialsButton() {
getMaterialsFromRESTController();
}
private void getMaterialsFromRESTController() {
MaterialClient controller = new MaterialClient();
try {
materialDataObservableList = FXCollections.observableArrayList(controller.getMaterias());
} catch (IOException e) {
System.out.println("Failed to connect to RESTController");
}
//materialTable.setItems(materialDataObservableList);
}
public ObservableList<MaterialData> getMaterialDataObservableList() {
return materialDataObservableList;
}
}
Спасибо, это очень помогло мне! – user1803183
Спасибо за полезный ответ. Я добавил 'initialize()' метод в 'TableController', чтобы загружать элементы без нажатия кнопки. Код доступен [здесь] (https://ideone.com/XZ6p1g), если он кому-то поможет. – c0der