gpt4 book ai didi

javafx - 如何使节点在 Pane 中居中javafx

转载 作者:行者123 更新时间:2023-12-02 03:54:53 26 4
gpt4 key购买 nike

如何创建一个 Pane 并将子节点放在中心?

假设Pane500500Node是一个ImageView200 by 200 Image

ImageView view = new ImageView();

Image img = new Image("test.png");
view.setImage(img);
Pane pane = new Pane();
pane.setMinWidth(500);
pane.setMinHeight(500);
pane.getChildren().add(view);

最佳答案

你有两个选择:

  1. 例如,使用 StackPane 而不是 Pane (因为您可以使用 Pos )

    StackPane p = new StackPane();
    p.setPrefSize(700,700); //set a default size for your stackpane
    Image img = new Image("test.png"); //create an image
    ImageView v = new ImageView(img); //create an imageView and pass the image

    p.getChildren().add(v); //add imageView to stackPane
    StackPane.setAlignment(v,Pos.CENTER_LEFT); //set it to the Center Left(by default it's on the center)
    stage.setScene(new Scene(p));
    stage.show();
  2. 您可以使用JavaFx Scene Builder,它是JavaFx的可视化布局工具。例如,如果我想创建一个 Hbox 布局:

    <?xml version="1.0" encoding="UTF-8"?>

    <?import java.lang.*?>
    <?import java.net.*?>
    <?import java.util.*?>
    <?import javafx.geometry.*?>
    <?import javafx.scene.*?>
    <?import javafx.scene.control.*?>
    <?import javafx.scene.effect.*?>
    <?import javafx.scene.image.*?>
    <?import javafx.scene.layout.*?>
    <?import javafx.scene.shape.*?>
    <?import javafx.scene.text.*?>

    <HBox alignment="CENTER" prefHeight="369.0" prefWidth="425.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" >
    <children>
    <ImageView fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" x="0.0" HBox.hgrow="NEVER">
    <image>
    <Image url="@../yourImg.png" />
    </image>
    </ImageView>
    </children>
    </HBox>

    将其另存为主类中的 myLayout.fxml 并将以下内容添加到您的代码中:

    Hbox root = FXMLLoader.load(getClass().getResource("myLayout.fxml"));
    Scene scene = new Scene(root);
    stage.setScene(scene);
    stage.show();

关于javafx - 如何使节点在 Pane 中居中javafx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23576044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com