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

Java FX从不同场景更改Label的值

西门旻
2023-03-14

我有两个场景。第一个场景使用以下代码调用第二个场景。

@FXML
private void confirmation(ActionEvent event) throws IOException{
 Stage confirmation_stage;
 Parent confirmation;
 confirmation_stage=new Stage();
 confirmation=FXMLLoader.load(getClass().getResource("Confirmation.fxml"));
 confirmation_stage.setScene(new Scene(confirmation));
 confirmation_stage.initOwner(generate_button.getScene().getWindow());
 confirmation_stage.show();
 }

“确认.fxml”中有一个名为“继续”的标签。

我需要在这个函数中更改标签的内容,并返回结果(真/假)。救命?

共有3个答案

云宾鸿
2023-03-14

假设您有一个名为< code > confirmation _ controller . Java '的控制器。在该控制器中,有一个公共方法< code>getProceedLabel(),该方法返回对名为< code>Proceed的标签的引用。您可以尝试以下代码:

 Stage confirmation_stage;
 Parent confirmation;
 confirmation_stage=new Stage();
 FXMLLoader loader = new FXMLLoader(getClass().getResource("Confirmation.fxml"));
 confirmation = loader.load();
 confirmation_controller controller = loader.getController();
 Label label = controller.getProceedLabel();
 label.setText("..."):
 confirmation_stage.setScene(new Scene(confirmation));
 confirmation_stage.initOwner(generate_button.getScene().getWindow());
 confirmation_stage.show();
厉高逸
2023-03-14

FXML 中的标签具有设置文本方法。因此,对于您的情况,“继续”标签将如下所示:

Proceed.setText("The new text");

至于问题的第二部分,我不是100%确定你问的是什么。我真的看不出函数返回真或假的任何情况。

皇甫展
2023-03-14

为 FXML 创建确认控制器。从控制器中,公开一个方法,该方法允许您将数据(字符串)传递到要设置为标签。

public class ConfirmationController implements Initializable {

    ...
    @FXML
    private Label proceed;
    ...
    public void setTextToLabel (String text) {
         proceed.setText(text);
    }
    ...
}

在加载FXML的方法中,您可以拥有:

...
FXMLLoader loader = new FXMLLoader(getClass().getResource("Confirmation.fxml"));
confirmation = loader.load();
ConfirmationController controller = (ConfirmationController)loader.getController();
controller.setTextToLabel("Your Text"); // Call the method we wrote before
...
 类似资料:
  • 问题内容: 我有两个场景。第一个场景使用以下代码调用第二个场景。 在“ Confirmation.fxml”中有一个名为“继续”的标签。 我需要从此函数中更改该标签的内容并返回结果(真/假)。救命? 问题答案: 为FXML 创建一个。从控制器中公开一个方法,该方法允许您传递数据(字符串)以设置为标签。 在加载FXML的方法中,可以具有:

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

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

  • 所以基本上我想做的是改变我的场景的一部分。我想保持一个静态菜单栏在顶部,只改变底部的部分根据哪个菜单按钮正在被点击。这意味着每个“页面”都需要不同的FXML文件和控制器类。 看看可用的JavaFX特性,我认为SubScene可以完成这项工作。但经过进一步的调查,似乎子场景是为3D东西制作的?所以我真的不知道我该做什么。 任何帮助都将不胜感激!

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