JavaFX 坐标相对于 Swing 在 Y 轴上反转
JavaFX coordinates inverted on the Y-axis with respect to Swing
Previously,我问了一个比较 SceneBuilder 坐标和 JavaFX 输出的问题。我开始意识到问题不在于 SceneBuilder 和导出的 FXML 代码;但实际上,这是我机器的 JavaFX 版本的问题。但是,我仍然不清楚为什么会这样。
在我的 FXML 代码中,我有以下层次结构:
<AnchorPane id="rootPane" pickOnBounds="false" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1">
<StackPane id="game">
<AnchorPane id="hud" style="-fx-background-color: rgba(0, 0, 0, 0);">
<Text id="ammo" fontSmoothingType="LCD" layoutX="14.0" layoutY="699.0" strokeType="OUTSIDE" strokeWidth="0.0" text="0" wrappingWidth="111.21875">
<font>
<Font name="Brother Deluxe 1350 Font" size="48.0" />
</font>
<effect>
<DropShadow color="#0000007a" height="16.0" offsetY="1.0" radius="5.5" width="8.0" />
</effect>
</Text>
</AnchorPane>
</StackPane>
</AnchorPane>
这会从 IntelliJ 产生以下输出:
如您所见,Y 坐标翻转了,0,0 位于屏幕的左下方。但是在 SceneBuilder 中,输出是我通常期望的:
如有必要,可以找到完整代码here。
我的问题是,为什么我的 JavaFX 应用程序生成的界面中 0,0 位于左下角而不是左上角,正如我的研究表明的那样?如果可能的话,我该如何解决这个问题?
我的操作系统是 OS X 10.12,El Capitan。我的 JDK 版本是 1.8.0_66.
Previously,我问了一个比较 SceneBuilder 坐标和 JavaFX 输出的问题。我开始意识到问题不在于 SceneBuilder 和导出的 FXML 代码;但实际上,这是我机器的 JavaFX 版本的问题。但是,我仍然不清楚为什么会这样。
在我的 FXML 代码中,我有以下层次结构:
<AnchorPane id="rootPane" pickOnBounds="false" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1">
<StackPane id="game">
<AnchorPane id="hud" style="-fx-background-color: rgba(0, 0, 0, 0);">
<Text id="ammo" fontSmoothingType="LCD" layoutX="14.0" layoutY="699.0" strokeType="OUTSIDE" strokeWidth="0.0" text="0" wrappingWidth="111.21875">
<font>
<Font name="Brother Deluxe 1350 Font" size="48.0" />
</font>
<effect>
<DropShadow color="#0000007a" height="16.0" offsetY="1.0" radius="5.5" width="8.0" />
</effect>
</Text>
</AnchorPane>
</StackPane>
</AnchorPane>
这会从 IntelliJ 产生以下输出:
如您所见,Y 坐标翻转了,0,0 位于屏幕的左下方。但是在 SceneBuilder 中,输出是我通常期望的:
如有必要,可以找到完整代码here。
我的问题是,为什么我的 JavaFX 应用程序生成的界面中 0,0 位于左下角而不是左上角,正如我的研究表明的那样?如果可能的话,我该如何解决这个问题?
我的操作系统是 OS X 10.12,El Capitan。我的 JDK 版本是 1.8.0_66.