两个控制器之间的通讯

时间:2018-12-10 03:22:06

标签: javafx javafx-8 javafx-2

我有两个阶段,分别是primary和second。每个阶段都有一个按钮和一个文本字段。我要做的是当我在primary阶段单击按钮时,显示第二阶段以及当我在阶段单击按钮时第二,它从第二阶段的文本字段中获取文本,并将文本放在第一阶段的文本字段中。原谅我可怜的英语。阅读我的代码后,您会知道的。

//PrimaryController
public class PrimaryController  {
@FXML
private TextField name;

@FXML
private void handleBtnAction(){
    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("second.fxml"));
    try {
        loader.load();
    } catch (IOException e) {
        e.printStackTrace();
    }

    Stage stage = new Stage();
    stage.setScene(new Scene(loader.getRoot()));
    stage.showAndWait();
}

public void setText(String text){
    System.out.println("Setting text");
    name.setText(text);
   }
}

这是第二个控制器

public class SecondController {
@FXML
private TextField name;

@FXML
private void handleBtn(MouseEvent event){
    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("primary.fxml"));
    try {
        loader.load();
    } catch (IOException e) {
        e.printStackTrace();
    }
    PrimaryController controller = loader.getController();
    controller.setText(name.getText());
    }
}

因此,当我单击第二阶段中的按钮时,将在控制台中打印“设置文本”,但不会设置第一阶段中的文本字段。 那么,我怎样才能使其正常工作?

0 个答案:

没有答案