Java 将 Observable 列表中的列分配给 @fxml 列
Java assign column in Observable list to @fxml column
我正在寻求建议,因为我无法在场景构建器中设计我的表单和底层 TableView
显示来自可观察列表的数据。我有返回 ObservableList<ObservableList>
的模型,我想将其分配给表单控制器中的列(例如,id
)。这是我的代码:
@FXML
private TableColumn id;
Database database = new Database();
TableView tableView = new TableView();
tableView.setItems(database.returnData()); // --> this is the method returning Observablelist
id = tableView.getColumns().get(0); // --> line with error
我收到错误
Error:(35, 44) java: 类型不兼容:java.lang.Object 无法转换为 javafx.scene.control.TableColumn
你能帮我让它工作吗?
非常感谢!
编辑:
如果我从数据库中提取 TableView 而不是可观察列表,在 Controller 中启动它,然后将 @FXML 列分配给提取的 tableview 中的列,会不会更容易?如果是,知道怎么做吗?感谢您提供的任何帮助或分享的信息。彼得
您需要 link 您的 table 和列到您的 FXML 定义中,还需要创建一个 ObservableList
并将其放入 table.
@FXML private TableView<SimpleFileProperty> table;
@FXML private TableColumn<SimpleFileProperty, String> sizeCol;
final private ObservableList<SimpleFileProperty> tableData =
FXCollections.observableArrayList();
// ...
table.setItems(tableData);
好的,就关闭这个吧。我的问题是 ObservableList< ObservableList > 的 return,在更改为 ObservableList< myClass > 后它开始工作。我强烈推荐下面提到的教程:
我正在寻求建议,因为我无法在场景构建器中设计我的表单和底层 TableView
显示来自可观察列表的数据。我有返回 ObservableList<ObservableList>
的模型,我想将其分配给表单控制器中的列(例如,id
)。这是我的代码:
@FXML
private TableColumn id;
Database database = new Database();
TableView tableView = new TableView();
tableView.setItems(database.returnData()); // --> this is the method returning Observablelist
id = tableView.getColumns().get(0); // --> line with error
我收到错误
Error:(35, 44) java: 类型不兼容:java.lang.Object 无法转换为 javafx.scene.control.TableColumn你能帮我让它工作吗? 非常感谢!
编辑: 如果我从数据库中提取 TableView 而不是可观察列表,在 Controller 中启动它,然后将 @FXML 列分配给提取的 tableview 中的列,会不会更容易?如果是,知道怎么做吗?感谢您提供的任何帮助或分享的信息。彼得
您需要 link 您的 table 和列到您的 FXML 定义中,还需要创建一个 ObservableList
并将其放入 table.
@FXML private TableView<SimpleFileProperty> table;
@FXML private TableColumn<SimpleFileProperty, String> sizeCol;
final private ObservableList<SimpleFileProperty> tableData =
FXCollections.observableArrayList();
// ...
table.setItems(tableData);
好的,就关闭这个吧。我的问题是 ObservableList< ObservableList > 的 return,在更改为 ObservableList< myClass > 后它开始工作。我强烈推荐下面提到的教程: