JavaFX2.x 专题教程 (布局面板) 1 界面布局 1 .1 内置布局面板 在JavaFX 应用中,通过设置每个UI 元素的位置和尺寸属性,可以实现手动UI 控件布局。但是,JavaFX 也提供了一个更容易界面布局选择,即利用内置的布局面板。JavaFX 的SDK 提供了好几个布局容器(谓之面板)来简洁的设置和管理布局,诸如行式、列式、栈式、标题式以及其它等。当视窗尺寸改变时,布局面板自动重定位和改变所包含的节点尺寸,以便保持相关节点属性的一致性。 这个专题中,将对 JavaFX 布局包内的每个布局面板进行概要介绍并提供相应简单示例。LayoutSample.java 文件包含了内置控件主体,源码参见附件1:布局示例。也可下载相应的完整的Netbeans 的工程文件:LayoutSample.zip。 下面介绍内置布局面板控件。 1.1.1 边界面板(BorderPane) BorderPane 布局面板内提供了上、下、左、右、中五个区域放置节点,图 1-1 展示了边界面板的情形。如果实际应用不需要某一区域,可以不需要定义之并不为之分配空间即可。 图 1-1 边界面板示例 边界面板对于顶部工具栏、底部状态栏、左边导航栏、右边附件信息以及中部工作区的典型外观是非常有用的。 如果窗口比每个区域内容需要的空间大,缺省情况下,多余的将留给中间区域;如果窗口小于需要的空间,则区域就肯能重叠。重叠方式有区域内设置的顺序方式决定。比如,区域设置的顺序为左、底和右,那么当窗口小了,底部将重叠在左边区域,右边将重叠底部区域。如果顺序是左、右和底,那么当窗口小时,底部重叠在左右区域上。 示例 1-1 展示了边界面板的创建,并用于布局示例应用控件的设置。每个区域应用的创建布局面板的方法,在此主题剩余部分将逐一进行描述。 示例 1 -1 创建边界面板 BorderPane border = new BorderPane(); HBox hbox = addHBox() border.setTop(hbox); border.setLeft(addVBox()); addStackPane(hbox); // Add stack to HBox in top region border.setCenter(addGridPane()); border.setRight(addFlowPane()); 注意,底部区域在此示例的边界面板中没有用。如果需要增加些内容到底部区域,使用如下语句,并用你选择的控件来代替 node 内容。 1.1.2 水平布局面板(HBox) HBox 布局面板为在单行中布置一系列节点提供了一种简易方式。如图 1-2 所示,展示了一个HBox 面板示例图。 图1-2 HBox 面板 特性 padding 用于设置并管理节点...