javafx布局类Pane

继承关系:

java.lang.Object

  • javafx.scene.Node
    • javafx.scene.Parent
      • javafx.scene.layout.Region
        • javafx.scene.layout.Pane

子类:

AnchorPane, BorderPane, FlowPane, GridPane, HBox, StackPane, TilePane, VBox

Pane是java最基本的布局类,它可以直接使用
public class TestPane extends Application{

	public static void main(String[] args) {
		launch();
	}
	public void start(Stage primaryStage) throws Exception {	
		Pane pane=new Pane();
		Scene scene=new Scene(pane);
	
		primaryStage.setWidth(500);
		primaryStage.setHeight(500);
		primaryStage.setScene(scene);
		primaryStage.setTitle("TestPane");
		primaryStage.show();
	}

}

javafx布局类Pane_第1张图片

添加子节点(Node)

pane的子节点都放在一个可观察列表中(ObservableList ),通过getChildren()方法获取该列表,向列表中添加节点即可。

	Button button=new Button ("button");
	pane.getChildren().add(button);

javafx布局类Pane_第2张图片

布局上会将所有节点放在(0,0)位置,后面的会覆盖前面的

	Button button=new Button ("button");
	pane.getChildren().add(button,new Button ("button2"));

javafx布局类Pane_第3张图片

如果将button放大,则可以看到它:

	Button button=new Button ("button");
	button.setFont(Font.font("sans-serif",40));
	pane.getChildren().add(button,new Button ("button2"));

javafx布局类Pane_第4张图片

节点可设置布局位置:

	Button button=new Button ("button");
	button.setFont(Font.font("sans-serif",40));
	button.setLayoutX(100);
	button.setLayoutY(100);
	pane.getChildren().add(button,new Button ("button2"));

javafx布局类Pane_第5张图片

Pane的大小可以设置初始值,前提是其父节点未有明确指定大小

		pane.setPrefHeight(200);
		pane.setPrefWidth(200);
		//	primaryStage.setWidth(300);
    	//	primaryStage.setHeight(300);

javafx布局类Pane_第6张图片

如果父节点有明确指定大小,pane将适应父节点;

		pane.setPrefHeight(200);
		pane.setPrefWidth(200);
		primaryStage.setWidth(300);
    	primaryStage.setHeight(300);

javafx布局类Pane_第7张图片
Pane的属性监听器

	pane.widthProperty().addListener(listener);

Pane的样式可以通过setStyle方法设置
javafx布局类Pane_第8张图片

	pane.setStyle("-fx-background:red;");

也可以用css修改,以下是官网链接:
https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#scatterchart

当然Pane也可以设置透明度,透明度也将作用于子节点

	pane.setOpacity(0.5);

javafx布局类Pane_第9张图片

你可能感兴趣的:(javafx基础)