我如何使用 Table 视图从其他 class 获取从一种方法到另一种方法的选择模型?

How i can get selection model from one method to another metod from other class with Table View?

我想要一个选定的模型,其名称、作者、key_words 到下一个 window。它在 tex 字段中的位置。更改后,我想通过 SQL 更新命令

将其保存在数据库中
public void displaySelected(ActionEvent mouseEvent) {

    ModelTable selection = Table_View.getSelectionModel().getSelectedItem();
    if (selection == null){
        System.out.println("not selected");
    }else {
        String SelectedAuthor = selection.getAuthor();
        String SelectedName = selection.getName();
        String SelectionWord = selection.getWords();

        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(getClass().getResource("Admin_Change.fxml"));
        try {
            loader.load();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Change_Add_Button.getScene().getWindow().hide();
        Parent root = loader.getRoot();
        Stage stage = new Stage();
        stage.setScene(new Scene(root));
        stage.show();
        System.out.println("Change display");
    }
}

我想将所选项目的文本字段设置为新页面 Controller_Admin_Change

@FXML
private TextField Change_AdminEdit_Author;

@FXML
private TextField Change_AdminEdit_Name;

@FXML
private TextField Change_AdminEdit_Word;

可能是OOP的常见错误,但不知道如何找到解决方案 谢谢指教

选择的项目我要插入什么 From this

到这个字段 To this

您可以通过 class javafx.fxml.FXMLLoader 中的方法 getController 获取对控制器的引用。然后你可以调用控制器的方法 class.

在控制器class中添加设置Change_AdminEdit_Author文本的方法:

public void setAuthor(String text) {
    Change_AdminEdit_Author.setText(text);
}

displaySelected方法中调用方法:
(注意我假设你的控制器 class 被命名为 Controller_Admin_Change

Controller_Admin_Change controller = loader.getController();
controller.setAuthor(SelectedAuthor);

建议坚持Java naming conventions。下面的代码和上面的代码是一样的,但是名字是按照约定来的。

public void setAuthor(String text) {
    changeAdminEditAuthor.setText(text);
}

String selectedAuthor = selection.getAuthor();
ControllerAdminChange controller = loader.getController();
controller.setAuthor(selectedAuthor);