gpt4 book ai didi

javafx - 使用场景构建器和多个 Controller

转载 作者:行者123 更新时间:2023-12-04 03:30:49 25 4
gpt4 key购买 nike

随着我的应用程序的增长,我想创建额外的类来处理 sql 查询、数据验证等。目前, Controller 管理这一切。

但是,我不知道如何创建可以与我的 Controller 类和我的 .fxml 文件中的组件“对话”的不同类。

我尝试了这个:JavaFX 1 FXML File with Multiple Different Controllers?

..并尝试创建一个新类来填充表,如下所示:

import java.sql.Connection;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

public class DepartmentTable {

private Connection conn;
private FXMLLoader fxmlLoader;
@FXML
private TableView<Department> departmentTableView;// = new TableView<>(staffTypeList);
@FXML
private TableColumn<Department, Integer> departmentIdCol;
@FXML
private TableColumn<Department, String> departmentNameCol;
private ObservableList<Department> departmentList;

public DepartmentTable(Connection aconn, FXMLLoader loader) {
this.conn = aconn;
this.fxmlLoader=loader;
loadController();
populateDepartmentTable();
}

private void loadController(){
fxmlLoader.setController(this);
}

private void populateDepartmentTable() {

departmentList = new DepartmentData(conn).getDepartmentList();

/*Populate the Table with StaffType objects*/
departmentIdCol.setCellValueFactory(
new PropertyValueFactory<Department, Integer>("departmentID"));
departmentNameCol.setCellValueFactory(
new PropertyValueFactory<Department, String>("departmentName"));

departmentTableView.setItems(departmentList);
}
}

但是,我收到了一个由 NullPointerException 引起的 invocationTargetException
/*Populate the Table with StaffType objects*/
departmentIdCol.setCellValueFactory(

所以我不知道此时该怎么办。

请帮忙。谢谢!

最佳答案

创建多个 FXML 和 Controller 更简单。 1 FXML = 1 Controller 。
而且您可以毫无问题地在不同的 Controller 之间进行通信。

看这部分Nested Controller

关于javafx - 使用场景构建器和多个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com