【Java精品源码栏目提醒】:网学会员为需要Java精品源码的朋友们搜集整理了JavaFX2专题教程_之_布局面板 - 外语相关资料,希望对各位网友有所帮助!
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.setTophbox border.setLeftaddVBox addStackPanehbox // Add stack to HBox in top region border.setCenteraddGridPane border.setRightaddFlowPane注意,底部区域在此示例的边界面板中没有用。
如果需要增加些内容到底部区域,使用如下语句,并用你选择的控件来代替 node 内容。
1.1.2 水平布局面板(HBox) HBox 布局面板为在单行中布置一系列节点提供了一种简易方式。
如图 1-2 所示,展示了一个 HBox 面板示例图。
图 1-2 HBox 面板特性 padding 用于设置并管理节点和 HBox 边缘间的距离。
设置特性 Spacing 间隔用于管理节点间的间距。
背景色能通过设置式样风格来改变。
示例 1-2 创建了一个 HBox 面板工具栏,且包含了两个按钮。
示例 1-2 创建 HBox 面板 public HBox addHBox HBox hbox new HBox hbox.setPaddingnew Insets15 12 15 12 hbox.setSpacing10 hbox.setStyle-fx-background-color: 336699 Button buttonCurrent new ButtonCurrent buttonCurrent.setPrefSize100 20 Button buttonProjected new ButtonProjected buttonProjected.setPrefSize100 20 hbox.getChildren.addAllbuttonCurrent buttonProjected return hbox 示例 1-1 中的 setTop方法把 HBox 面板添加到边界面板的顶部区域。
结果如图 1-3 所示。
图 1-3 边界面板中 HBox1.1.3 垂直布局面板(VBox)VBox 面板是在单列中布置节点对象的,其它与 HBox 面板类似。
图 1-4 展示了 VBox 的一个应用示例情况。
图 1-4 VBox 面板示例特性 padding 用来设置并管理节点间和 VBox 边缘的间距;Spacing 特性用来设置管理节点间距;Margins 用来设置添加个别控件周围的附属空间。
示例 1-3 创建了一个选项清单的 VBox面板示例应用。
示例 1-3 创建 VBox 面板 public VBox addVBox VBox vbox new VBox vbox.setPaddingnew Insets10 vbox.setSpacing8 Text title new TextData title.setFontFont.fontArial FontWeight.BOLD 14 vbox.getChildren.addtitle Hyperlink options new Hyperlink new HyperlinkSales new HyperlinkMarketing new HyperlinkDistribution new HyperlinkCosts for int i0 i