当前位置: 首页 > news >正文

java中borderpane_JavaFX BorderPane布局

BorderPane布局顶部,底部,左,右或中心区域中的子节点。每个区域只能有一个节点。BorderPane的顶部和底部区域允许可调整大小的节点占用所有可用宽度。

左边界区域和右边界区域占据顶部和底部边界之间的可用垂直空间。

默认情况下,所有边界区域尊重子节点的首选宽度和高度。放置在顶部,底部,左侧,右侧和中心区域中的节点的默认对齐方式如下:

顶部: Pos.TOP_LEFT

底部: Pos.BOTTOM_LEFT

左侧: Pos.TOP_LEFT

右侧: Pos.TOP_RIGHT

中心: Pos.CENTER

示例

将按钮添加到BorderPane,如下代码所示 -

import javafx.application.Application;

import javafx.geometry.Insets;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.layout.BorderPane;

import javafx.stage.Stage;

public class Main extends Application {

public static void main(String[] args) {

Application.launch(args);

}

@Override

public void start(Stage primaryStage) {

primaryStage.setTitle("BorderPane Test");

BorderPane bp = new BorderPane();

bp.setPadding(new Insets(10, 20, 10, 20));

Button btnTop = new Button("Top");

bp.setTop(btnTop);

Button btnLeft = new Button("Left");

bp.setLeft(btnLeft);

Button btnCenter = new Button("Center");

bp.setCenter(btnCenter);

Button btnRight = new Button("Right");

bp.setRight(btnRight);

Button btnBottom = new Button("Bottom");

bp.setBottom(btnBottom);

Scene scene = new Scene(bp, 300, 200);

primaryStage.setScene(scene);

primaryStage.show();

}

}

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

1e94e16d52816d65b2d4b496053f4c56.png

实例-2

使用场景绑定BorderPane宽度和高度

import javafx.application.Application;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.Menu;

import javafx.scene.control.MenuBar;

import javafx.scene.control.MenuItem;

import javafx.scene.layout.BorderPane;

import javafx.scene.paint.Color;

import javafx.stage.Stage;

public class Main extends Application {

public static void main(String[] args) {

Application.launch(args);

}

@Override

public void start(Stage primaryStage) {

primaryStage.setTitle("Title");

Group root = new Group();

Scene scene = new Scene(root, 400, 250, Color.WHITE);

MenuBar menuBar = new MenuBar();

EventHandler action = changeTabPlacement();

Menu menu = new Menu("Direction");

MenuItem left = new MenuItem("Left");

left.setOnAction(action);

menu.getItems().add(left);

MenuItem right = new MenuItem("Right");

right.setOnAction(action);

menu.getItems().add(right);

MenuItem top = new MenuItem("Top");

top.setOnAction(action);

menu.getItems().add(top);

MenuItem bottom = new MenuItem("Bottom");

bottom.setOnAction(action);

menu.getItems().add(bottom);

menuBar.getMenus().add(menu);

BorderPane borderPane = new BorderPane();

borderPane.prefHeightProperty().bind(scene.heightProperty());

borderPane.prefWidthProperty().bind(scene.widthProperty());

borderPane.setTop(menuBar);

root.getChildren().add(borderPane);

primaryStage.setScene(scene);

primaryStage.show();

}// from w WW.y i i bAI. c OM

private EventHandler changeTabPlacement() {

return new EventHandler() {

public void handle(ActionEvent event) {

MenuItem mItem = (MenuItem) event.getSource();

String side = mItem.getText();

if ("left".equalsIgnoreCase(side)) {

System.out.println("left");

} else if ("right".equalsIgnoreCase(side)) {

System.out.println("right");

} else if ("top".equalsIgnoreCase(side)) {

System.out.println("top");

} else if ("bottom".equalsIgnoreCase(side)) {

System.out.println("bottom");

}

}

};

}

}

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

10be7e2bf44f5f1074906218b58df023.png

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

相关文章:

  • Java如何查行数_如何正确利用Rownum来限制查询所返回的行数?
  • java 3 4_3-4 Java基础第四天
  • php phar 文件使用,PHP如何操作phar文件
  • java使用xpath解析xml,java使用XPath解析xml
  • php脚本防护,PHP的一个EVAL的利用防范
  • php中背景图怎么设置不重复,css怎么让背景图片不重复
  • java标签更改显示,离子选项卡,如何在标签更改上显示微调器?
  • java读写二进制文件 移动指针 seek,《Java大学教程》—第20章 文件处理
  • php权限无需验证的控制器,控制器 · ThinkPHP5权限管理 · 看云
  • 两'参数粒子群matlab,SVM用粒子群优化参数
  • 数据在文本框中显示 php,在文本框中使用php和纯ajax从数据库加载数据
  • 数字信号处理matlab滤波器,数字信号处理matlab滤波器课程设计
  • matlab逆求贝塞尔函数变量值,MATLAB怎么求解有贝塞尔函数的问题,求高手帮帮忙,谢谢...
  • java 继承 默认作用域,Spring(三)——Bean的 继承关系、依赖关系、作用域
  • matlab中的newfis,(To be removed) Create new fuzzy inference system
  • Google 是如何开发 Web 框架的
  • 78. Subsets
  • Centos6.8 使用rpm安装mysql5.7
  • DOM的那些事
  • JavaScript的使用你知道几种?(上)
  • k8s 面向应用开发者的基础命令
  • vue学习系列(二)vue-cli
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从伪并行的 Python 多线程说起
  • 近期前端发展计划
  • 通信类
  • 我看到的前端
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​520就是要宠粉,你的心头书我买单
  • #100天计划# 2013年9月29日
  • #AngularJS#$sce.trustAsResourceUrl
  • #if 1...#endif
  • #QT项目实战(天气预报)
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (Forward) Music Player: From UI Proposal to Code
  • (libusb) usb口自动刷新
  • (八)Spring源码解析:Spring MVC
  • (三)elasticsearch 源码之启动流程分析
  • (一)Neo4j下载安装以及初次使用
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)平衡树
  • .Net Web项目创建比较不错的参考文章
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .net实现客户区延伸至至非客户区
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @Conditional注解详解
  • [30期] 我的学习方法
  • [AIGC codze] Kafka 的 rebalance 机制
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Android] Upload package to device fails #2720
  • [Android]如何调试Native memory crash issue
  • [AutoSar]BSW_OS 02 Autosar OS_STACK