JavaFX:为什么只有在有setter的情况下才能读取Window.xProperty()和Window.yProperty()?

时间:2018-11-13 09:36:31

标签: java javafx

顾名思义,Window.xProperty()Window.yProperty()都被定义为ReadOnlyDoubleProperty。但是,有Window.setX()Window.setY()允许我们设置值。为何以这种方式设计它?

2 个答案:

答案 0 :(得分:2)

这在documentation of Stage中有解释:

  

许多Stage属性是只读的,因为它们可以由基础平台在外部进行更改,因此不能绑定。

尽管针对Stage进行了说明,但推理也适用于Window的某些属性。实际上,widthheightfocused之类的属性都提到同一件事:

  

该属性是只读的,因为可以由基础平台在外部对其进行更改,因此该属性不可绑定。

我不知道为什么xy属性的文档中也没有这句话,尽管我想这只是一个疏忽。

答案 1 :(得分:0)

xProperty()和yProperty()返回一个Property对象,该对象分别包含x和y的值。 setX()和setX()更改x和y,而不更改属性对象。