AnchorPane //锚点布局,也称为 绝对布局,定位布局
AnchorPane 可以管理该布局类上的所有孩子,不能管理孙子类
当ap去设置b1的位置的时候,b1自己设置的位置就不管用了
Button b1 = new Button("button1");
Button b2 = new Button("button2");
AnchorPane ap = new AnchorPane();
ap.setTopAnchor(b1,10.0);//当ap去设置b1的位置的时候,b1自己设置的位置就不管用了
ap.setLeftAnchor(b1,10.0);
b1.setLayoutX(100);//该设置无效,优先级原因
b1.setLayoutY(100);//该设置无效,优先级原因
设置ap的内边距的时候,b1需要做如下调整
Button b1 = new Button("button1");
Button b2 = new Button("button2");
AnchorPane ap = new AnchorPane();
ap.setPadding(new Insets(10.0));//设置内边距10PX
Button b1 = new Button("button1");
Button b2 = new Button("button2");
AnchorPane ap = new AnchorPane();
ap.setPadding(new Insets(10.0));//设置内边距10PX
ap.setTopAnchor(b1,00.0);//一定要设置这个,哪怕设置为0,才能看到上面内边距的效果
ap.setLeftAnchor(b1,00.0);
//ap.setRightAnchor(b1,10.0);
//ap.setBottomAnchor(b1,10.0);
b1.setLayoutX(100);//该设置无效,优先级原因
b1.setLayoutY(100);//该设置无效,优先级原因
设置ap布局类背景的子背景为自身宽高的一半,采用监听机制,并把代码放在.show()之后
AnchorPane ap = new AnchorPane();
ap.setStyle("-fx-background-color: #ff3e96");
AnchorPane ap2 = new AnchorPane();
ap2.setStyle("-fx-background-color: #0000FF");
ap.getChildren().add(ap2);//ap2相当于是ap的子组件
Scene scene = new Scene(ap);
primaryStage.setScene(scene);
primaryStage.setTitle("lesson13");
primaryStage.setWidth(800);
primaryStage.setHeight(800);
primaryStage.show();
ap.setTopAnchor(ap2,0.0);
ap.setBottomAnchor(ap2,ap.getHeight()/2);
ap.setLeftAnchor(ap2,0.0);
ap.setRightAnchor(ap2,ap.getWidth()/2);
primaryStage.widthProperty().addListener(new ChangeListener() {//监听窗口的宽
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
ap.setBottomAnchor(ap2,ap.getHeight()/2);
}
});
primaryStage.heightProperty().addListener(new ChangeListener() {//监听窗口的高
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
ap.setRightAnchor(ap2,ap.getWidth()/2);
}
});
}
内框占外框的一半并锁定b1按钮的位置
Button b1 = new Button("b1");
Button b2 = new Button("b2");
Button b3 = new Button("b3");
Button b4 = new Button("b4");
//设置ap布局类背景的子背景为自身宽高的一半,采用监听机制,并把代码放在.show()之后
AnchorPane ap = new AnchorPane();
ap.setStyle("-fx-background-color: #ff3e96");
AnchorPane ap2 = new AnchorPane();
ap2.setStyle("-fx-background-color: #0000FF");
ap.getChildren().add(ap2);//ap2相当于是ap的子组件
//给ap2添加一个按钮b1,相当于ap2是b1的爹,ap是ap2的爹
ap2.getChildren().add(b1);
//设置ap2距离b1的内边距
ap2.setRightAnchor(b1,0.0);
ap2.setBottomAnchor(b1,0.0);
Scene scene = new Scene(ap);
primaryStage.setScene(scene);
primaryStage.setTitle("lesson13");
primaryStage.setWidth(800);
primaryStage.setHeight(800);
primaryStage.show();
ap.setTopAnchor(ap2,0.0);
ap.setBottomAnchor(ap2,ap.getHeight()/2);
ap.setLeftAnchor(ap2,0.0);
ap.setRightAnchor(ap2,ap.getWidth()/2);
primaryStage.widthProperty().addListener(new ChangeListener() {//监听窗口的宽
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
ap.setBottomAnchor(ap2,ap.getHeight()/2);
}
});
primaryStage.heightProperty().addListener(new ChangeListener() {//监听窗口的高
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
ap.setRightAnchor(ap2,ap.getWidth()/2);
}
});
设置 让父类不再管理自己的几种方法
b1.setManaged(false);//设为false代表 让父类不再管理自己,并且在位置上消失
b1.setVisible(true);//代表 让父类看不见自己,并且还在在位置上
b1.setOpacity(1);//设置按钮的透明度