gpt4 book ai didi

java - 使用 BorderPane 定位控件时出现问题

转载 作者:行者123 更新时间:2023-12-01 16:20:38 25 4
gpt4 key购买 nike

我希望创建一个以控件为中心的 GUI。因此,我使用 VBox 垂直排列它们,并使用 BorderPane 将其居中。但是,它并没有按照我想象的方式工作,而是将标签放置在窗口的右角。

import javafx.application.Application ;
import javafx.stage.Stage ;
import javafx.scene.Scene ;
import javafx.scene.Group ;
import javafx.scene.layout.* ;
import javafx.scene.control.* ;
import javafx.geometry.*;

public class Untitled extends Application
{
public static void main(String[] args)
{
Application.launch(args) ;
}

@Override
public void start(Stage window)
{
Label label_1 = new Label("Hello") ;
label_1.setMinWidth(75) ;

Label label_2 = new Label("World") ;
label_2.setMinWidth(75) ;

Label label_3 = new Label("!!!") ;
label_3.setMinWidth(75) ;


VBox v_box = new VBox(10) ;
v_box.setPadding(new Insets(20)) ;
v_box.getChildren().addAll(label_1, label_2, label_3) ;

BorderPane b_pane = new BorderPane() ;
b_pane.setCenter(v_box) ;

Scene the_scene = new Scene(b_pane, 300, 300) ;

window.setScene(the_scene) ;
window.show() ;
}
}

这是哪里出了问题还是我遗漏了什么?

最佳答案

BorderPane 首先将其顶部和底部节点的高度调整为首选高度。然后,它将左右节点的高度调整为它们的首选高度或顶部和底部之间剩余的高度(以较小者为准)。顶部和底部节点始终占据父节点的整个宽度。左右节点的宽度调整为首选宽度。中心的大小会调整以占据场景中剩余的任何内容。因为您没有将任何节点放置到顶部、左侧、右侧或底部,所以您的中心节点 (v_box) 被调整大小以占据整个场景,因为它没有应用最大/首选宽度/高度。所以你有一个位于中心 Pane 居中的垂直盒子...但它是场景的大小...所以垂直盒子中的任何内容都会根据垂直盒子的对齐和内容定位属性显示对齐...你没有设置或者...当您更新 vbox 的对齐方式并将其设置为 Pos.CENTER 时,您告诉 vbox 将其所有子项从左到右居中,而且从上到下居中。

关于java - 使用 BorderPane 定位控件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62294315/

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