我如何使用 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);
我想要一个选定的模型,其名称、作者、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);