当前位置: 首页 > 知识库问答 >
问题:

更改在不同场景中输入的新场景中的标签文本(javafx)

高修筠
2023-03-14
public class MainBanana extends Application {


@Override
public void start(Stage primaryStage) throws IOException {

    Parent root = FXMLLoader.load(getClass().getResource("view/Welcome.fxml"));
    Scene scene = new Scene(root);
    primaryStage.setTitle("MokaApp");
    primaryStage.setScene(scene);
    primaryStage.show();
    primaryStage.setResizable(false);



}

public static void main(String[] args) {
    launch(args);

}
public class WelcomeController {

@FXML
public TextField nameField;
@FXML
private Button okButton;

private MainController main;


@FXML
public void okClicked(ActionEvent event) throws IOException{



    Parent root = FXMLLoader.load(getClass().getResource("Person.fxml"));
    okButton.getScene().setRoot(root);
    System.out.println(nameField.getText());
    main.setLblFromTf(nameField.getText());


}


    public void init(MainController mainController) {
        main=mainController;

    }
public class PersonController {

@FXML
public Label nameLabel;

private MainController main;


public void init(MainController mainController) {
    main=mainController;

}

}

共有1个答案

佟阳焱
2023-03-14

您不需要到处引用maincontroller

最简单的方法是:

public class PersonController {

    @FXML
    private Label nameLabel ;

    public void setName(String name) {
        nameLabel.setText(name);
    }
}

那你就可以

public class WelcomeController {

    @FXML
    private TextField textField ;

    @FXML
    private Button okButton ;

    @FXML
    public void okClicked() throws IOException {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("Person.fxml"));
        Parent root = loader.load();
        PersonController personController = loader.getController();
        personController.setName(textField.getText());
        okButton.getScene().setRoot(root);
    }
}
 类似资料:
  • 问题内容: 我有一个使用javafx Scene来渲染某些东西的应用程序,并且我想将该渲染结果放入我在Javafx中创建的某些GUI中。我该怎么做? 基本上,有一些容器可以放入场景,然后将其放入GUI。 抱歉,如果是新手问题,我是JavaFX的新手 问题答案: 该场景只有一个顶级父节点作为根。您可以获取它并放入另一个场景。

  • }`我正在计划在同一舞台上使不同的部分成为自己的场景。如果有任何帮助,我将不胜感激。我正在使用NetBeans8.2。

  • 我在第一个场景上有一个简单的按钮,应该会导致第二个场景。当我点击按钮时,它改变场景,但只显示一个空白屏幕。如果我关闭原始舞台,然后显示一个包含新场景的新舞台,它会正常工作,但我不想打开一个新窗口。 这是我的控制器类: 主类:

  • 我是JavaFX的新手。我有我的主要场景和次要场景;当我从第一个场景切换到第二个场景时,窗口的条形图变得可见。我该怎么解决呢?

  • 对我如何做到这一点有什么建议吗? 这是我到目前为止编写的代码,但它似乎忽略了Thread.Sleep并且只使第三个代码变为蓝色。

  • 接口说明 操作场景产生的信息json,需要提交到服务端进行保存,以便下次查看场景的时候,可以正常访问到对该场景操作过得信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/scene/1.0.0/upload 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 id string form 是 场景ID