javaFx 窗口内控件自动拉伸实现方式

1、使用HBOX和VBox包含控件,这样内部控件就有VGrow和HGrow属性,就可以进行自动拉伸的设置。

2、AnchorPane控件包含的内部控件可以使用AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"让内部控件拉伸到外部控件。

例如:

<AnchorPane maxHeight="-Infinity" minHeight="-Infinity" prefHeight="150.0" style="-fx-border-color: #000000; -fx-background-color: #ffffff;">
    <HBox fx:id="hBoxMain" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
    </HBox>
</AnchorPane>

 

在Java中,控制窗口控件的分行显示通常涉及到Swing或JavaFX等图形用户界面库。如果你想让一组组件分布在几行里,你可以使用FlowLayout、GridLayout或者BoxLayout布局管理器。 1. **FlowLayout**:默认的布局管理器,组件按照添加顺序从左到右、自上而下排列。要分隔行,可以设置组件之间的垂直间距(setVerticalSpacing())。 ```java JFrame frame = new JFrame(); flowLayout = new FlowLayout(FlowLayout.LEADING); // LEFT_TO_RIGHT or RIGHT_TO_LEFT frame.setLayout(flowLayout); flowLayout.setVgap(10); // 设置每行之间的距离 ``` 2. **GridLayout**:将容器划分为网格,并按指定的列数和行数排列组件。例如: ```java GridBagLayout gridBagLayout = new GridBagLayout(); gridBagLayout.columnWidths = new int[] {150, 150, 150}; gridBagLayout.rowHeights = new int[] {75, 75, 75}; // 设置组件在网格中的位置 gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; button1 = new JButton("Button 1"); frame.add(button1, gridBagConstraints); ``` 3. **BoxLayout**:水平或垂直方向的布局,适合单向拉伸,如水平栈面板(BoxLayout.HORIZONTAL_AXIS)或垂直栈面板(BoxLayout.VERTICAL_AXIS): ```java Box box = Box.createVerticalBox(); box.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); for (Component component : components) { box.add(component); } frame.add(box); ``` 记得在添加组件后调整窗口大小以查看效果,因为初始时它们可能会堆叠在一起。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值