2014-03-05 79 views
0
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; 


} 

填寫數據的TableView在屏幕2以下Screen2DocumentController.java如何從屏幕截圖1

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; 
} 

當我點擊登錄按鈕我收到運行時錯誤。我究竟做錯了什麼?

+0

一些堆棧跟蹤將有助於把它! – ItachiUchiha

回答

0

你可以通過控制器1的參考用

Screen2DocumentController controller2 = (Screen2DocumentController)fxmlloader.getController(); 

到控制器2添加變量Screen2DocumentController

private Screen1DocumentController controller1; 

添加一個方法來Screen2DocumentController

public void setScreen1DocumentController(Screen1DocumentController controller){this.contoller1 = controller; } 

現在你可以調用方法你的handlelogin方法

((Screen2DocumentController)fxmlloader.getController()).setScreen1DocumentController(this);

現在您可以在controller2中引用controller1。

如果你現在一個方法添加到Screen1DocumentController sayHello的

public void sayHello(String name){ System.out.println("Hello "+name);} 

你可以從Screen2DocumentController使用

controller1.sayHello("pavankumar"); 

希望幫助

0

首先把你的電話FXMLLoader到一個try/catch獲得的相關詳細信息 有關error.I猜,你對Screen2Document.fxml路徑不正確或ReportDetails import語句丟失?

+0

現在我能夠將數據從Screen1DocumentController發送到Screen2DocumentController我讀這篇文章「http://stackoverflow.com/questions/12166786/multiple-fxml-with-controllers-share-object/」這是從控制器1發送數據罰款到subcontroller.But我想要從子控制器發送到controller1的數據。? – pavankumar