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

javafx-更新fxml对象中的值,它是在单击按钮时动态加载的

宰父熙云
2023-03-14

我正在创建一个简单的天气应用程序

以下是我问题的细节:-

Parent root = FXMLLoader.load(getClass().getResource("GeoWeatherMainUI.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
<BorderPane fx:id="MainBody" prefHeight="736.0" prefWidth="1140.0" xmlns:fx="http://javafx.com/fxml" fx:controller="geoweather.GeoWeatherUIActionHandlers">
    .
    .
    <Button layoutX="91.0" layoutY="67.0" mnemonicParsing="false" onAction="#getCurrAndForecastWeatherCond" text="Get Weather Details" />
    .
    .
<BorderPane>
public class GeoWeatherUIActionHandlers implements Initializable{
    @FXML
    BorderPane MainBody;
    @FXML
    Label LocName;/*LocName is fx id for a label*/

    @FXML
    private void getCurrAndForecastWeatherCond(ActionEvent event){
        try{
            Pane centerPane = FXMLLoader.load(getClass().getResource("WeatherDetails.fxml"));
            MainBody.setCenter(centerPane);
            /*LocName.setText("xyz");*/
        }catch (IOException ex){
            TextArea excep = new TextArea(ex.toString());
            MainBody.setCenter(excep);
        }catch(Exception e){
            TextArea excep = new TextArea("Inside Exception : \n" + e.toString());
            MainBody.setCenter(excep);
        }
    }

    @Override
    public void initialize(URL url, ResourceBundle rb){}
}

我浏览了javafx@docs.oracle.com的完整文档。没运气。在这里我也没有得到答案。请引导。

共有1个答案

潘佐
2023-03-14

如果LocName位于WeatherDetails.fxml中,那么LocName将为null是例外行为。因为@fxml标签locname;是在GeoWeatherUIActionHandlers.java中定义的,它是GeoWeatherMainUI.fxml的控制器。将LocName从WeatherDetails移动到GeoWeatherMainUI FXML文件,然后查看是否仍在哪里得到错误。

如果您的目标是设置WeatherDetails.fxml中标签的文本,那么请执行以下工作

>

  • 在类似于当前GeoWeatherUIActionHandlers的WeatherDetails控制器中,或

    • 通过((label)centerPane.lookup(“#mylabel”)).settext(“xyz”)
    • 从centerPane中按id(不是fx:id)获取标签
    • 获取WeatherDetails的控制器并调用getLocName().settext(“xyz”)。假设getter方法存在于控制器类中。

  •  类似资料:
    • 我目前正在使用JavaFX和JavaFX Scene Builder开发一些GUI。我遇到了一个问题,要为它找到解决方案并不容易(至少对我来说)。我想得到这样的东西: http://i.imgur.com/oN4mIVl.png 关键是单击TreeItem“Sample”后,只有窗口的右侧会重新加载。我也想使用fxml文件来完成它。我知道我可以在另一个fxml中包含一个fxml,但这不是解决方案。

    • 谁能帮我知道哪里出了问题?还有其他方法吗?提前感谢!

    • 问题内容: 标题可能有点含糊,所以让我对其定义更好一些。我有一段有效的代码(在下面):我正在开发的游戏的简单主菜单。除“开始”按钮外,其他所有内容均正常运行。 我想要做的是单击“开始”按钮,并在同一阶段(窗口)中出现一个新场景。我不想看到一个新窗口打开。我已经与Java经验丰富的人进行了交谈,他们告诉我为MenuFX和GameFX创建单独的类。如果是这种情况,我需要从MenuFX类中调用GameF

    • 问题内容: 我是Swing的新手。 我要在单击按钮(完成按钮)后更新表格。我认为数据正确,但屏幕无法正常工作。 以下是我程序的说明 选中复选框,然后单击完成按钮 最底层应更改。 没有主 这是我的代码: 问题答案: 而不是这样做… 只需更新现有模型 或简单地 假设您要继续向表中添加新行。如果您要这样做,还可以先清除表,然后再向其中添加新行。 Swing的工作原理是MVC(模型-视图- 控制器 ),该

    • 问题内容: 我正在使用此处找到的自定义表格模型。我已经使用该帖子中提供的建议更新了我的代码,并遇到了一个新问题。我对我的代码所做的改变是一个注入到我,以避免与线程的问题。完成此操作后,通过按按钮更新我的表的代码已停止工作。 用于初始化的代码如下: 我用来更新的代码如下: 我也尝试过使用,但这也不起作用。截至目前,更新的唯一方法是关闭并重新打开程序。具有我正在使用的,随着用户添加更多玩家,尺寸会增加

    • 我试图更新下载按钮点击数据库列。似乎很容易,但当我点击按钮数据库中的计数器不更新。 我不确定这是否是最佳和正确的方法,但这是我到目前为止所做的。 一个输入字段,用户从API中提取图像 当图像加载有显示按钮下载和用户可以下载它 另外,当用户搜索图像时,我会将搜索的内容保存在数据库中。这是我的控制器函数,用于将图像保存在数据库中的搜索字符串中。这很好用 这是下载时更新按钮单击的功能 视图中的按钮 路线