Java 如何将ImageView锚定到其边框窗格区域的中心?
我有一个带有ImageView的BorderPane布局,如下所示,但ImageView始终固定在左上角,并在调整窗口大小时保持不变。我想将ImageView保持在它绑定到的部分的中心(红色框)。使用FXML可以这样做吗 FXML:Java 如何将ImageView锚定到其边框窗格区域的中心?,java,javafx,fxml,Java,Javafx,Fxml,我有一个带有ImageView的BorderPane布局,如下所示,但ImageView始终固定在左上角,并在调整窗口大小时保持不变。我想将ImageView保持在它绑定到的部分的中心(红色框)。使用FXML可以这样做吗 FXML: <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?> <?import javafx.scene.Group?> <?impor
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.Group?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.*?>
<VBox prefWidth="800.0" prefHeight="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1">
<BorderPane xmlns:fx="http://javafx.com/fxml" VBox.vgrow="ALWAYS">
<top>
<VBox alignment="TOP_CENTER">
<ToolBar minHeight="50.0" prefHeight="50.0" prefWidth="800.0" stylesheets="@../css/style.css"
GridPane.rowIndex="1">
<ImageView fitHeight="35.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true">
<Image url="@../images/toolbar-logo.png"/>
</ImageView>
</ToolBar>
<MenuBar fx:id="menuBar" prefHeight="0.0" prefWidth="0.0"/>
</VBox>
</top>
<left>
<StackPane prefWidth="230.0" prefHeight="800.0">
<ListView fx:id="listView"/>
</StackPane>
</left>
<center>
<StackPane>
<ScrollPane>
<Group fx:id="selectionGroup">
<ImageView fx:id="mainImageView"/>
</Group>
</ScrollPane>
</StackPane>
</center>
<right>
<TextField promptText="Text" />
</right>
</BorderPane>
</VBox>
更改:
<StackPane>
<ScrollPane>
<Group fx:id="selectionGroup">
<ImageView fx:id="mainImageView"/>
</Group>
</ScrollPane>
</StackPane>
致:
您可能需要调整
fitWidth
和fitHeight
属性。如果您删除滚动窗格
并将图像视图
直接放在“StackPane”中,您的问题应该得到解决您似乎发布了很多相当简单的内容(对于具有您声誉级别的人而言)关于布局的问题。只需阅读基本内容,就可以很快给出答案。@James\D谢谢,我只是觉得XML/FXML对于一般布局来说相当可怕。我会查出来的。@SedrickJefferson移除了滚动窗格
,成功了。这会将图像移动到堆栈窗格的绝对中心,但会破坏之前与滚动窗格/组组合相关的功能。在不改变这些元素的情况下,有什么方法可以做到这一点吗?什么功能?
<StackPane>
<children>
<ImageView fx:id="mainImageView" fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" />
</children>
</StackPane>