《java程式設計基礎》javaFX的佈局皮膚

一隻不起眼的豬發表於2020-11-30

1.棧皮膚類StackPane
建立棧皮膚,將在其上放置兩個按鈕,並用樣式屬性設定按鈕和棧皮膚的外觀樣式。
package yuan; //棧皮膚的應用
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane; //載入棧皮膚類
public class App14_3 extends Application{
Button bt =new Button(“確定”);

@Override
public void start(Stage primaryStage) {
	// TODO Auto-generated method stub
		StackPane sPane = new StackPane();   //建立棧皮膚物件
		bt.setStyle("-fx-border-color:blue");//設定按鈕的邊框顏色為藍色
		Button bt1 = new Button("我也是按鈕");
		bt1.setPrefSize(80, 50);          //設定按鈕的優先大小,即自定義按鈕的大小
		bt.setStyle("-fx-border-color:green");    //設定bt1按鈕的邊框顏色為綠色
		bt1.setRotate(-45);              //將bt1按鈕按逆時針旋轉45度
		sPane.getChildren().addAll(bt1,bt); //將按鈕加入棧皮膚中
		sPane.setRotate(45);                     //設定將棧皮膚順時針旋轉45度
		sPane.setStyle("-fx-border-color:red;-fx-background-color:lightgray");
		Scene scene = new Scene(sPane,180,100);
		primaryStage.setScene(scene);
		primaryStage.show();
}
public static void main(String[] args) {
	// TODO Auto-generated method stub
	Application.launch(args);    //啟動獨立的JavaFx程式
}

}
2.流式皮膚類FlowPane
建立流式皮膚,將按鈕放入其中,然後再將流式皮膚加入場景。
package yuan;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.StackPane;
import javafx.geometry.Orientation;
import javafx.geometry.Insets;
public class App14_4 extends Application{
Button[]bt = new Button[6]; //建立按鈕陣列
@Override
public void start(Stage primaryStage) {
// TODO Auto-generated method stub
FlowPane rootNode = new FlowPane(); //建立流式皮膚物件
rootNode.setOrientation(Orientation.HORIZONTAL);//設定結點水平擺放
rootNode.setPadding(new Insets(12,13,14,15)); //設定皮膚邊緣內側四周空白的距離
rootNode.setHgap(8); //設定皮膚上結點之間的水平間距為8畫素
rootNode.setVgap(5); //設定皮膚上結點之間的垂直間距為5畫素
for(int i=0;i<bt.length;i++) {
bt[i] = new Button(“按鈕”+(i+1));
rootNode.getChildren().add(bt[i]);//將命令按鈕bt[i]放入流式皮膚中
}
Scene scene = new Scene(rootNode,200,80);
primaryStage.setTitle(“流式皮膚”);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Application.launch(args); //啟動獨立的JavaFx程式
}

}

3.邊界皮膚類BoderPane
建立邊界式皮膚,並在每個區域中放置一個按鈕。
package yuan;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.geometry.Insets;
public class App14_5 extends Application{

@Override
public void start(Stage primaryStage)  {
	// TODO Auto-generated method stub
			BorderPane rootPane = new BorderPane();//建立邊界式皮膚物件
			rootPane.setPadding(new Insets(10));  //設定邊界皮膚邊緣內側空白距離均為10畫素
			Button bt = new Button("頂部工具條");
			bt.setPrefSize(280, 20);              //設定按鈕的優先大小,即自定義按鈕的大小
			rootPane.setTop(bt);                   //將按鈕放置在邊界皮膚的頂部區域
			rootPane.setBottom(new Button("底部狀態列"));  //將按鈕放置在邊界皮膚的底部區域
			rootPane.setLeft(new Button("左部導航選單"));//將按鈕放置在邊界皮膚的左部區域
			rootPane.setRight(new Button("顯示資訊"));//將按鈕放置在邊界皮膚的右部區域
			rootPane.setCenter(new Button("中間工作區"));//將按鈕放置在邊界皮膚的中部區域
			Scene scene = new Scene(rootPane,280,130);
			primaryStage.setTitle("邊界式皮膚");
			primaryStage.setScene(scene);
			primaryStage.show();
}
public static void main(String[] args) {
	// TODO Auto-generated method stub
	Application.launch(args);    //啟動獨立的JavaFx程式
}

}

4.單行皮膚類HBox和單行列表皮膚類VBox
建立單行皮膚,在單行皮膚中放入兩個自定義大小的按鈕,並設定每個按鈕四周邊緣外側空白部分的距離。
package yuan; //單行皮膚的應用
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.geometry.Insets;
public class App14_6 extends Application{

Button bt1 = new Button("上一步");
Button bt2 = new Button("下一步");

@Override
public void start(Stage primaryStage)  {
	// TODO Auto-generated method stub
	HBox hb = new HBox();       //建立單行皮膚物件hb
	bt1.setPrefSize(160, 20);   //自定義按鈕大小,即設定按鈕的優先大小
	hb.setMargin(bt1, new Insets(5,5,5,5)); //設定bt1四周邊緣外側空白距離
	bt2.setPrefSize(80, 20);               //自定義按鈕大小
	hb.setMargin(bt2, new Insets(10));         //設定bt2四周邊緣外側空白距離均為10畫素
	hb.getChildren().addAll(bt1,bt2);            //將按鈕bt1和bt2放入單行皮膚中
	Scene scene = new Scene(hb,300,50);
	primaryStage.setTitle("單行皮膚");
	primaryStage.setScene(scene);
	primaryStage.show();
}
public static void main(String[] args) {
	// TODO Auto-generated method stub
	Application.launch(args);    //啟動獨立的JavaFx程式
}

}

相關文章