这个JavaFX示例代码展示了如何使用BorderPane布局。JavaFX场景由包含HBox和BorderPane的VBox组成。JavaFX标签放置在BorderPane的五个区域中。按钮和选择框可用于显示特定区域的标签。显示一个标签时,上一个标签将不可见。...
java代码
这个JavaFX示例代码展示了如何使用BorderPane布局。JavaFX场景由包含HBox和BorderPane的VBox组成。JavaFX标签放置在BorderPane的五个区域中。按钮和选择框可用于显示特定区域的标签。显示一个标签时,上一个标签将不可见。
本示例程序附带的文章是BorderPane概述。
例子
导入javafx.application.application;导入javafx.event.actionevent;导入javafx.event.eventhandler;导入javafx.geometry.pos;导入javafx.scene.scene;导入javafx.scene.control.label;导入javafx.scene.control.choicebox;导入javafx.scene.control.button;导入javafx.scene.layout.borderpane;导入javafx.scene.layout.vbox;导入javafx.scene.layout.hbox;导入javafx.stage.stage;公共类borderpaneexample扩展应用程序{//为不同的borderpane区域声明标签控件final label toplabel=新标签(“顶部窗格”);final label leftlabel=新标签(“左侧窗格”);final label rightlabel=新标签(“右侧窗格”);final label centerlabel=新标签(“中心窗格”);final label bottomlabel=新标签(“底部窗格”);@override public void start(stage primarystage){//场景将有一个包含//一个hbox和一个borderPab的vbox root=new vbox(10);hbox showcontrols=new hbox(10);final borderpane controllayout=new borderpane();//设置边框窗格的大小并显示其边框//将其设置为黑色controllayout.setprefsize(600400);controllayout.setstyle(“-fx border color:black;”;//调用setlabelvisible方法,该方法将一个标签设置为可见//将其他标签设置为隐藏setlabelvisible(“顶部”);//将每个标签放在其相应的边界窗格区域controllayout.settop(toplabel);controllayout.setleft(leftlabel);controllayout.setright(rightlabel);controllayout.setcenter(centerlabel);controllayout.setbottom(bottomlabel);//将标签对齐到其边框窗格的中心//区域controllayout.setalignment(toplabel,pos.center);controllayout.setalignment(centerlabel,pos.center);controllayout.setalignment(bottomlabel,pos.center);//创建一个choicebox来保存边框窗格区域名称final choicebox panes=new choicebox();panes.getitems().addall(“上”、“左”、“右”、“中”、“下”);panes.setvalue(“上”);//创建一个按钮来触发哪个标签是可见的按钮movebut=new button(“显示窗格”);movebut.setonaction(new eventhandler<actionevent>(){@override public void handle(actionevent arg0){//调用setlabelvisible方法,根据choicebox setlabelvisible(panes.getvalue().tostring();}}});//将按钮和choicebox添加到hbox showcontrols.getchildren().add(movebut);showcontrols.getchildren().add中(窗格);//将hbox和borderpane添加到vbox root.getchildren().add(showcontrols);root.getchildren().add(controllayout);scene scene=新场景(root,600500);primarystage.settitle(“borderpane布局示例”);primarystage.setscene(场景);primarystage.show();}//一个简单的方法,它根据传递给public void setlabelvisible(string labelname){switch(labelname){case“top”:toplabel.setvisible(true);leftlabel.setvisible(false);righLabel.setvisible(false);centerlabel.setvisible(false);bottomlabel.setvisible(false);break;case“left”:toplabel.setvisible(false);leftlabel.setvisible(true);rightlabel.setvisible(false);centerlabel.setvisible(false);bottomlabel.setvisible(false);break;大小写“right”:toplabel.setvisible(false);leftlabel.setvisible(true);centerlabel.setvisible(false);bottomlabel.setvisible(false);break;大小写“center”:toplabel.setvisible(false);leftlabel.setvisible(false);rightlabel.setvisible(false);centerlabel.setvisible(true);bottomlabel.setvisible(false);break;大小写“bottom”:toplabel.setvisible(false);rightlabel.setvisible(false);centerlabel.setvisible(false);bottomlabel.setvisible(true);break;默认值:break;};};}/***在正确部署的javafx应用程序中忽略main()方法。*main()仅在无法通过部署工件*启动应用程序的情况下用作后备方法,例如在fx*支持有限的IDE中。netbeans忽略main().*@param args命令行参数*/public static void main(字符串[]args){launch(args);}