2017-08-10 15 views
0

ImageViewを持つBorderPaneレイアウトがありますが、ImageViewは常に左上隅に固定され、ウィンドウのサイズを変更するとそこにとどまります。私はそれがバインドされているセクションの中央(赤いボックス)にアンカーを維持するImageViewにしたいと思います。これはFXMLを使って可能ですか?ImageViewをBorderPane領域の中央に固定するにはどうすればよいですか?

enter image description here

FXML:

<?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> 
+2

'ScrollPane'を削除し、' StackPane 'に 'ImageView'を直接置くと、問題が修正されるはずです – Sedrick

+0

レイアウトに関するあなたの評判のレベルの人にはかなり簡単な投稿をたくさん載せているようです。基本的な[チュートリアル](http://docs.oracle.com/javase/8/javafx/layout-tutorial/index.html)と[APIドキュメント](http://docs.oracle.com/javase/)を読むだけです。 8/javafx/api/javafx/scene/layout/package-summary.html)はこれらに対する回答をかなり素早く提供するはずです。 –

+0

@ James_Dありがとう私はちょうどレイアウトの一般的なXML/FXMLはかなり恐ろしいです。私はそれらをチェックアウトします。 – santafebound

答えて

1

変更:

 <StackPane> 
      <ScrollPane> 
       <Group fx:id="selectionGroup"> 
        <ImageView fx:id="mainImageView"/> 
       </Group> 
      </ScrollPane> 
     </StackPane> 

へ:

 <StackPane> 
      <children> 
       <ImageView fx:id="mainImageView" fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" />      
      </children> 
     </StackPane> 

fitWidth属性とfitHeight属性を調整する必要がある場合があります。

+0

これは、画像をStackPaneの絶対中心に移動させますが、ScrollPane/Groupコンボに関連付けられた以前の機能を無効にします。これらの要素を変更せずにこれを行うには何かありますか? – santafebound

+0

どのような機能ですか? – Sedrick

関連する問題