Java 如何从screen1在screen2的TableView中填充数据
下面是Screen2DocumentController.java:Java 如何从screen1在screen2的TableView中填充数据,java,controller,javafx,tableview,Java,Controller,Javafx,Tableview,下面是Screen2DocumentController.java: public class Screen1DocumentController implements Initializable { /** * Initializes the controller class. */ @Override public void initialize(URL url, ResourceBundle rb) { // TODO
public class Screen1DocumentController implements Initializable {
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
@FXML public void handleLogin() throws IOException{
Parent root = FXMLLoader.load(getClass().getResource("Screen2Document.fxml"));
Scene scene = new Scene(root);
Stage stage = new Stage();
stage.setScene(scene);
stage.show();
}
@FXML Button btnLogin;
}
公共类Screen2DocumentController实现可初始化{
/**
*初始化控制器类。
*/
@凌驾
公共void初始化(URL、ResourceBundle rb){
//待办事项
报告员;
r=新报告详情(“pavan”);
rptDtls.add(r);
rptDtls.add(新报告详情(“Viajy”);
rptDtls.add(新报告详情(“sharat”);
rptDtls.add(新报告详情(“sandeep”);
rptDtls.add(新报告详情(“bhaskar”);
添加(新报告详情(“nokal”);
}
私有ObservableList rptDtls=FXCollections.observableArrayList();
@FXML TableView-tblData;
@FXML表列tblCData;
}
当我点击登录按钮时,我得到了运行时错误。我做错了什么?首先将FXMLLoader调用放入try/catch以获取详细信息
关于错误。我猜您到Screen2Document.fxml的路径不正确,或者ReportDetails的导入语句缺失?您可以通过以下方式将controller1的引用传递给controller2
public class Screen2DocumentController implements Initializable {
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
ReportDetails r;
r = new ReportDetails("pavan");
rptDtls.add(r);
rptDtls.add(new ReportDetails("Viajy"));
rptDtls.add(new ReportDetails("sharat"));
rptDtls.add(new ReportDetails("sandeep"));
rptDtls.add(new ReportDetails("bhaskar"));
rptDtls.add(new ReportDetails("nokal"));
}
private ObservableList<ReportDetails> rptDtls = FXCollections.observableArrayList();
@FXML TableView tblData;
@FXML TableColumn<ReportDetails,String> tblCData;
}
将变量添加到Screen2DocumentController
Screen2DocumentController controller2 = (Screen2DocumentController)fxmlloader.getController();
private Screen1DocumentController controller1;
向Screen2DocumentController添加方法
Screen2DocumentController controller2 = (Screen2DocumentController)fxmlloader.getController();
private Screen1DocumentController controller1;
现在可以在handlelogin方法中调用方法
((Screen2DocumentController)fxmlloader.getController()).setScreen1DocumentController(此)代码>
现在您在controller2中有一个controller1的引用
如果您现在向Screen1DocumentController添加一个方法,请说Hello
public void setScreen1DocumentController(Screen1DocumentController controller){this.contoller1 = controller; }
您可以通过使用从Screen2DocumentController调用它
public void sayHello(String name){ System.out.println("Hello "+name);}
希望有帮助一些堆栈跟踪将有帮助!现在我可以将数据从Screen1DocumentController发送到Screen2DocumentController我读了这篇文章“这对于将数据从controller1发送到controller1很好。但是我希望数据从controller1发送到controller1。”。?