アプリケーションの成長に伴い、SQL クエリやデータ検証などを処理する追加のクラスを作成したいと考えています。現在、コントローラーがすべてを管理しています。
ただし、コントローラー クラス内のコンポーネントや .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(
したがって、この時点で何をすべきかわかりません。
助けてください。ありがとうございました!