当前位置: 首页 > 面试题库 >

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

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

我需要从此函数中更改该标签的内容并返回结果(真/假)。救命?


问题答案:

ConfirmationController为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
...


 类似资料:
  • 我有两个场景。第一个场景使用以下代码调用第二个场景。 “确认.fxml”中有一个名为“继续”的标签。 我需要在这个函数中更改标签的内容,并返回结果(真/假)。救命?

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

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

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

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