Расположение ImageViews в панели - PullRequest
0 голосов
/ 04 апреля 2020

Я не могу понять, как расположить ImageViews на панели без изменения его размера.

Это мой файл f xml:

<BorderPane fx:id="borderPaneVersusMain" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
  <left>
    <VBox fx:id="leftMenu" maxWidth="150.0" minWidth="150.0" prefWidth="150.0" BorderPane.alignment="CENTER">
      <children>
        <TilePane>
          <children>
            <Button fx:id="btnSettings" mnemonicParsing="false" onAction="#loadSettingsScene" text="Settings" />
            <Button fx:id="btnExit" mnemonicParsing="false" onAction="#quitApplication" text="Exit" />
            <Button fx:id="btnUpdate" mnemonicParsing="false" text="update" />
            <Label text="TS" />
          </children>
        </TilePane>
        <ImageView fx:id="tS" fitWidth="150.0" pickOnBounds="true" preserveRatio="true">
          <image>
            <Image url="@../images/tF.jpg" />
          </image>
        </ImageView>
      </children>
    </VBox>
  </left>
  <center>
    <AnchorPane styleClass="versus" stylesheets="@../styles/style.css" BorderPane.alignment="CENTER">
      <children>
        <Pane fx:id="table" style="-fx-background-color: GREEN;" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="10.0" />
      </children>
    </AnchorPane>
  </center>
</BorderPane>

Панель с таблицей идентификаторов заполнены ImageViews (картами), которые я хочу расположить абсолютно по отношению к самой панели.

Для этого я хочу, чтобы панель меняла размер только при изменении размера окна. Я хотел бы расположить ImageViews в зависимости от расстояния до границ, например, некоторые карты должны go к левой границе, некоторые к правой границе, некоторые вверх, а некоторые вниз.

Но в любое время я пытаюсь Для этого размер панели автоматически изменяется ... Я не могу установить maxWidth и maxHeight, потому что тогда размер панели больше не соответствует размеру окна.

Как я могу это сделать?

I используйте простую панель, а не BorderPane, потому что я хочу создавать непохожую анимацию от середины к сторонам, и переключение с панели может предотвратить это.

Должно быть что-то вроде:

ImageView iv = new ImageView(image);
iv.setLayoutX( table.getWidth/2 );
iv.setLayoutY( table.getHeight/2 );

установить изображение в середине панели. Это не работает, хотя и после этого. Размер панели изменяется, поэтому следующее изображение будет недоступно.

Большое спасибо. Я надеюсь, что кто-то может помочь мне здесь <3 </p>

Jiefu

...