JavaFX教程 - JavaFX VBox

VBox布局将子节点堆叠在垂直列中。

新添加的孩子被放置在上一个子节点的下面。

默认情况下,VBox尊重孩子的首选宽度和高度。

当父节点不可调整大小时,例如Group节点,最大垂直列的宽度基于具有最大优选宽度的节点。

默认情况下,每个子节点与左上(Pos.TOP_LEFT)位置对齐。

例子

以下代码将TextArea控件设置为在调整父VBox的高度时垂直增长:

TextArea myTextArea = new TextArea();

VBox.setHgrow(myTextArea, Priority.ALWAYS);

import javafx.application.Application;

import javafx.scene.Scene;

import javafx.scene.control.TextArea;

import javafx.scene.layout.Priority;

import javafx.scene.layout.VBox;

import javafx.scene.paint.Color;

import javafx.stage.Stage;

public class Main extends Application {

@Override

public void start(Stage primaryStage) {

TextArea myTextArea = new TextArea();

VBox hbox = new VBox();

hbox.getChildren().add(myTextArea);

VBox.setVgrow(myTextArea, Priority.ALWAYS);

Scene scene = new Scene(hbox, 320, 112, Color.rgb(0, 0, 0, 0));

primaryStage.setScene(scene);

primaryStage.show();

}

public static void main(String[] args) {

launch(args);

}

}

上面的代码生成以下结果。

实施例2

下面的代码使用四个矩形来演示VBox的使用。

import javafx.application.Application;

import javafx.geometry.Insets;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.layout.HBox;

import javafx.scene.layout.VBox;

import javafx.scene.shape.Rectangle;

import javafx.stage.Stage;

/*fromwww.java2s.com*/

public class Main extends Application {

@Override

public void start(Stage primaryStage) {

Group root = new Group();

Scene scene = new Scene(root, 300, 250);

// 5 pixels space between child nodes VBox vbox = new VBox(5);

// 1 pixel padding between child nodes only vbox.setPadding(new Insets(1));

Rectangle r1 = new Rectangle(10, 10);

Rectangle r2 = new Rectangle(20, 100);

Rectangle r3 = new Rectangle(50, 20);

Rectangle r4 = new Rectangle(20, 50);

HBox.setMargin(r1, new Insets(2, 2, 2, 2));

vbox.getChildren().addAll(r1, r2, r3, r4);

root.getChildren().add(vbox);

primaryStage.setScene(scene);

primaryStage.show();

}

public static void main(String[] args) {

launch(args);

}

}

上面的代码生成以下结果。

VBox间距

VBox vbox = new VBox(8); // spacing = 8

vbox.getChildren().addAll(new Button("Cut"), new Button("Copy"), new Button("Paste"));

import javafx.application.Application;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.layout.VBox;

import javafx.stage.Stage;

public class Main extends Application {

@Override

public void start(final Stage stage) {

stage.setTitle("HTML");

stage.setWidth(500);

stage.setHeight(500);

Scene scene = new Scene(new Group());

VBox vbox = new VBox(8); // spacing = 8

vbox.getChildren().addAll(new Button("Cut"), new Button("Copy"), new Button("Paste"));

scene.setRoot(vbox);

stage.setScene(scene);

stage.show();

}

public static void main(String[] args) {

launch(args);

}

}

上面的代码生成以下结果。

设置填充和间距

import javafx.application.Application;

import javafx.geometry.Insets;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.control.Label;

import javafx.scene.layout.VBox;

import javafx.scene.text.Font;

import javafx.scene.text.FontWeight;

import javafx.stage.Stage;

/*fromwww.java2s.com*/

public class Main extends Application {

public static void main(String[] args) {

Application.launch(args);

}

@Override

public void start(Stage primaryStage) {

primaryStage.setTitle("VBox Test");

// VBox VBox vb = new VBox();

vb.setPadding(new Insets(10, 50, 50, 50));

vb.setSpacing(10);

Label lbl = new Label("VBox");

lbl.setFont(Font.font("Amble CN", FontWeight.BOLD, 24));

vb.getChildren().add(lbl);

// Buttons Button btn1 = new Button();

btn1.setText("Button1");

vb.getChildren().add(btn1);

Button btn2 = new Button();

btn2.setText("Button2");

vb.getChildren().add(btn2);

Button btn3 = new Button();

btn3.setText("Button3");

vb.getChildren().add(btn3);

Button btn4 = new Button();

btn4.setText("Button4");

vb.getChildren().add(btn4);

// Adding VBox to the scene Scene scene = new Scene(vb);

primaryStage.setScene(scene);

primaryStage.show();

}

}

上面的代码生成以下结果。

javafx vbox 居中_JavaFX VBox相关推荐

  1. javafx vbox 居中_JavaFX VBox调整大小

    我在基于JavaFX的游戏中创建弹出式确认消息,并试图弄清楚布局是如何工作的.我的弹出类扩展StackPane它的构造看起来像这样:JavaFX VBox调整大小 public PopUp (Stri ...

  2. javafx vbox 居中_JavaFx HBox VBox 布局利用Priority实现布局自适应

    一:相关类和方法 1:   javafx.scene.layout.Priority,一个枚举类,用于确定给定节点的增长(或缩小)优先级.比如:一个HBox布局,里面有三个控件,当屏幕宽度是800时, ...

  3. javafx vbox 居中_如何平均分配JavaFX VBox的元素

    Im使用VBox並向其添加了三個標籤.標籤之間的垂直空間使用setSpacing()方法進行設置.但它是一個固定值,說20.如果我將該值更改爲50,則空間將會增加.但它是硬編碼.如何平均分配JavaF ...

  4. javafx窗体程序_JavaFX实际应用程序:SkedPal

    javafx窗体程序 "真实世界的应用程序"系列中的一个新条目. 这次是SkedPal ,这是一个用于智能管理忙人生活的应用程序. 我一直在咨询SkedPal团队有关JavaFX的 ...

  5. javafx 内存占用_JavaFX:TouchGesture内存泄漏?

    javafx 内存占用 在我的一个项目中,最近几天我在与内存泄漏作斗争(是--"耦合"),我得出的结论是可能存在与触摸/滚动手势有关的问题. 在下面的示例中,我有两个按钮. 第一个 ...

  6. javafx窗体程序_JavaFX真实世界应用程序:EIZO CuratOR Caliop

    javafx窗体程序 JavaFX Real-World应用程序第四号称为Caliop . 它是EIZO为医院手术室开发的CuratOR解决方案的前端. 前端在壁挂式控制台上运行,并允许操作团队查找有 ...

  7. javafx窗体程序_JavaFX实际应用程序:AISO HRC-Matic

    javafx窗体程序 " Real-World JavaFX Apps"系列中的第三个应用程序是一种重型数据输入应用程序,由称为HRC-Matic的关系数据库支持. 它由AISO在 ...

  8. javafx窗体程序_JavaFX真实世界应用程序:欧洲电视网广播联盟

    javafx窗体程序 我荣幸地与今年在德累斯顿Saxonia 系统公司工作的Alexander Casall一起在JavaOne上展示了多个JavaFX Real-World应用程序. 在准备本次演讲 ...

  9. javafx 剪切板_JavaFX技巧18:路径剪切

    javafx 剪切板 我最近注意到,我致力于ControlsFX项目的PopOver控件无法正确剪切其内容. 当我为FlexCalendarFX框架开发手风琴弹出窗口时,这一点变得显而易见. 每当最后 ...

最新文章

  1. Android媒体相关开发应用程序接口
  2. DES加密算法安全性评估
  3. Kafka集群部署详细步骤(包含zookeeper安装步骤)
  4. 云计算的基础设施服务
  5. cell数组变为字符串_字符串匹配 ---- BM 算法原理
  6. 2013页面验证框架来袭。基于独创的vvc思想。还不知道的童鞋赶快围观吧!
  7. 上岸 1 年后,重回大厂内卷
  8. 深入理解JavaScript (5) —— 闭包
  9. 领扣(LeetCode)七进制数 个人题解
  10. 网页滚动截屏怎么截长图
  11. linux如何卸载anaconda
  12. Android 仿QQ、新浪相册的实现
  13. 【独行秀才】macOS Monterey 12.1Beta2(21C5031d)原版镜像
  14. 如何利用MATLAB建立Lotka-Volterra模型及其改进模型
  15. 写贺卡给毕业师姐怎么写计算机系的,[给师姐的毕业祝福语]对师姐的毕业祝福语...
  16. SylixOS学习二—— SylixOS认识和使用_SylixOS虚拟机使用
  17. (一)大彩屏幕 进行串口通信
  18. 懒惰使人沉睡;懈怠的人必受饥饿。
  19. 游戏搬砖是什么意思?
  20. HCIP考试心得,题库整理

热门文章

  1. C++ STL和泛型编程(四)----movable
  2. 《Docker技术入门与实战》——3.8 本章小结
  3. 联盟链和公有链混合架构如何实现?Hyperledger核心开发者陈昌访谈
  4. java代码使用重写来优化电子宠物系统
  5. 音乐游戏音频解析 ABC(上)
  6. 东南大学计算机2020初试成绩公布,东南大学2020考研复试分数线已公布
  7. 想跳槽却简历石沉大海?一起来围观月薪20k的软件测试工程师真实简历 (含金量高面试题)
  8. python解决 ModuleNotFoundError: No module named _bz2
  9. SpringBoot+Vue项目实战-QG
  10. ubuntu终端代码上传github最简方法