2014-01-08 96 views
-2

我是JavaFX的新手,仍然在學習我有這個問題,找不到答案。從另一個場景(擁有自己的控制器)打開一個新場景(有自己的控制器)

我有兩個FXML文件名爲「one.fxml」和「two.fxml」,他們有自己的控制器類命名「OneController.java」和「TwoController.java」

我想開帶「on.fxml」的onButtonClick的「two.fxml」。

在「one.fxml」按鈕代碼是:

<Button fx:id="clearButton" layoutX="690.0" layoutY="309.0" minHeight="18.0" mnemonicParsing="false" prefHeight="40.0" prefWidth="196.0" text="Clear" onAction="#buttonclearClick"/> 

,我有這種方法在「OneController.java」

private void buttonclearClick(final ActionEvent event) 
{ 
    //code to be written? 
} 

還我怎麼轉移的某些字段的值從 「one.fxml」 到 「two.fxml」

,如:

如果 「one.fxml」 也有這樣的標籤:

<Text fx:id="textLabel" fill="#001f4b" layoutX="14.0" layoutY="377.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Powered by StackOverflow"> 

我如何傳遞這個文本字段值(文本= 「技術的StackOverflow」),以 「two.fxml」 或TwoController.java

如何實現這一目標?

+0

,你甚至不給完整的答案,給出答覆之前請閱讀完整的問題 –

+0

我編輯答案。現在檢查它。 –

回答

1

一個控制器

  private void buttonclearClick(final ActionEvent event) 
      { 
       try 
       { 

       FXMLLoader loader = new FXMLLoader(getClass().getResource("two.fxml")); 
       Stage stage = new Stage(); 
       stage.initModality(Modality.APPLICATION_MODAL); 
       //stage.initOwner(MainStage.stage); 
       stage.setScene(new Scene((Pane)loader.load())); 
       TwoController tsc = loader.<TwoController>getController(); 
       tsc.GettextVal(textLabel.getText()); // Function in TwoController 
       stage.show(); 

       } 
       catch(Exception e) 
       { 
        e.printStackTrace(); 
       } 
      } 

兩個控制器

做一個功能GettextVal兩個控制器

  @FXML 
      void initialize() 
      { 
      //Initialize code here 
      } 

      public void GettextVal(String txtval) 
      { 
      System.out.println("text value from one controller - "+txtval); 
      } 
+0

你可以請完全閱讀這個問題!一行一行 –

+0

@ VK.N two.fxml已經打開,或者你想打開它也點擊按鈕 –

+0

我想打開它,然後使用它 –

相關問題