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

JavaFX将标签textProperty绑定到多个属性更改

孙绍辉
2023-03-14

我想做的是:

我有一个JavaFX窗口,我通过拖动角或侧面不断改变它的宽度和高度。我希望当宽度或高度发生变化时然后Label的文本具有以下格式:

~Width=[here the width of the Window],Height[here the height of the Window]~

例子:

~Width=[1300],Height=[600]~

我想使用绑定,而不是使用2(两)个ChangeListeners来实现这一点。

                                   I am trying:

label.textProperty().bind(I am stack here on how to do this...);

我也读过这个问题JavaFX绑定到多个属性

共有2个答案

燕航
2023-03-14

我认为最简单的方法是使用更改侦听器,并手动查询with/height值。喜欢

public void init()
{
     ChangeListener<Number> listener = (obs, ov, nv) -> update();
    node.widthProperty().addListener(listener);
    node.heightProperty().addListener(listener);
}

public void update()
{
      label.setText(String.format("width[%s] height[%s]", node.getWidth()), node.getHeight);
}
宋鸿云
2023-03-14

只需使用绑定即可。以宽度和高度作为依赖项创建StringBinding:

StringBinding binding = Bindings.createStringBinding(
            () -> MessageFormat.format("~Width=[{0}],Height=[{1}]~", primaryStage.getWidth(), primaryStage.getHeight()),
            primaryStage.widthProperty(),
            primaryStage.heightProperty());

label.textProperty().bind(binding);
 类似资料:
  • 我正在开发一个简单的Java程序来完成一些简单的mySQL内容。它有一个用JavaFX制作的小GUI。 GUI的控制器有一个SimpleBoleanProperty,我们称之为X,它指示到数据库的连接状态。我将一些简单的东西绑定到它,比如按钮的disableProperty so send querys,如果没有连接,应该禁用它。到现在为止,一直都还不错。 我有一个标签,用于执行以下操作: 如果X

  • 问题内容: 我有一个带有文本字段和按钮的简单fxml。如果文本字段为空,我想禁用按钮。所以我在控制器中插入如下内容: ..那很好。问题是当我添加第二个文本字段时,如果其中一个文本字段为空,希望禁用我的按钮。那该怎么办?我尝试了以下操作,但这不起作用: 问题答案: 可以通过以下方式绑定到布尔表达式:

  • 我有一个带有文本字段和按钮的简单fxml。如果文本字段为空,我想禁用按钮。所以我在我的控制器中插入如下内容: ..这很好用。问题是,当我添加第二个文本字段时,如果其中一个文本字段为空,我希望禁用我的按钮。那怎么办呢?我尝试了以下方法,但不起作用:

  • 我在JavaFX应用程序中使用MVP。 资源: 控制器: 看法 在我的InfoStageView中,只需初始化我的标签和样式我的视图。 如何将我的超链接绑定到我的标签。我尝试了一些方法,但没有成功。我的StringProperty不可点击,但很容易绑定。 我的目标:我想打开带有链接的浏览器。

  • 我有一个预览页面,需要添加或编辑模型,并显示预览。 我需要从添加表单页和编辑表单页调用预览。我要通过的模型是相同的,但来自不同的形式。 (1) ModelAttribute是否有支持这种多属性名称映射的方法?(2) 我怎么能考虑重新设计这个?考虑(a)在表单提交之前重命名表单名称/属性以使用相同的属性名称。(b) 完全删除ModelAttribute——这不是我的选项,因为我使用的是SpringM

  • 我有一个文本字段,用户在其中输入工资。TF有一个基于默认语言环境的TextFormatter。文本字段旁边有一个标签,在这个标签中,我想显示格式为货币的文本字段文本,为此,我使用以下代码: 如您所见,标签文本没有格式化为数字-因为没有应用格式化程序-。所以我的问题是如何使标签的文本格式化并同时与TextField TextProperty绑定。 有人可能会问:为什么不使用货币格式化程序而不是数字格