资源描述:
《使用JavaFX2.0内置布局窗格》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在JavaFX应用中,当然可以通过指定UI元素的位置和大小属性来手动布局。不过,更简单的方法是使用布局窗格。JavaFXSDK提高了多种布局容器类(称为窗格)来方便的建立和管理经典布局,如行、列、堆、拼贴等。由于窗口是可以改变大小的,所以布局窗格会根据其包含的结点自动修改位置和大小。本文是JavaFX布局窗格的概览,并为每个窗格提供了小例子。边框窗格BorderPaneBorderPane布局窗格提供了5块放置结点的区域:顶部、底部、座部、右部、中部。 Figure1-1 是能用该布局窗格创建的布局类型。区域可
2、以是任意大小的,如果不需要某一块,可以不定义。 Figure1-1SampleBorderPaneDescriptionof"Figure1-1SampleBorderPane" 边框窗格对于经典布局很有用,像顶部的工具栏,底部的状态栏,左边的导航面板,右边的补充信息,中间的工作区。Example1-1 创建了一个每个区域是有色矩形的边框窗格。 Example1-1CreateaBorderPaneBorderPanelayout=newBorderPane();layout.setTop(newRectan
3、gle(200,50,Color.DARKCYAN));layout.setBottom(newRectangle(200,50,Color.DARKCYAN));layout.setCenter(newRectangle(100,100,Color.MEDIUMAQUAMARINE));layout.setLeft(newRectangle(50,100,Color.DARKTURQUOISE));layout.setRight(newRectangle(50,100,Color.DARKTURQUOISE)
4、); 水平盒子HBoxHBox 布局窗格提供了一种简单的方法来把一些列结点放进单行里面。Figure1-2 是一个HBox 窗格的例子。Figure1-2SampleHBoxPaneDescriptionof"Figure1-2SampleHBoxPane" Padding属性用来设置结点和HBox的边缘间距离。 Spacing属性用来设置结点间距离。style用来改变背景色。Example1-2 创建了一个工具栏的HBox 窗格,里面有两个按钮。 Example1-2CreateanHBoxPaneHBoxh
5、box=newHBox();hbox.setPadding(newInsets(15,12,15,12));hbox.setSpacing(10);hbox.setStyle("-fx-background-color:#336699");ButtonbuttonCurrent=newButton("Current");buttonCurrent.setPrefSize(100,20);ButtonbuttonProjected=newButton("Projected");buttonProjected.se
6、tPrefSize(100,20);hbox.getChildren().addAll(buttonCurrent,buttonProjected);BorderPaneborder=newBorderPane();border.setTop(hbox); Example1-2 中的最后一行创建了一个边框布局,并把HBox加入到顶部区域。结果见 Figure1-3 .Figure1-3HBoxPaneinaBorderPaneDescriptionof"Figure1-3HBoxPaneinaBorderPa
7、ne" 垂直盒子VBoxVBox 布局窗格和HBox 布局很类似,区别仅仅是垂直盒子的结点是组织进一列中。Figure1-4 是一个VBox窗格的例子。Figure1-4SampleVBoxPaneDescriptionof"Figure1-4SampleVBoxPane" Padding属性用来设置结点和VBox的边缘间距离。 Spacing属性用来设置结点间距离。Example1-3 创建了一个选项列表VBox。Example1-3CreateaVBoxPaneVBoxvbox=newVBox();vbox
8、.setPadding(newInsets(10,10,10,10));vbox.setSpacing(10);Texttitle=newText("Data");title.setFont(Font.font("AmbleCN",FontWeight.BOLD,14));vbox.getChildren().add(title);Textoptions[]=newText[]{new