Group简单介绍

关于使用Group批量设置Note的文章

新增与移除组件

新增组件

要显示组件,首先肯定要有组件

1
2
3
Button b1=new Button("b1");
Button b2=new Button("b2");
Button b3=new Button("b3");

向group添加Button可以有两种方法,第一种是一个一个添加

1
2
3
group.getChildren().add(b1);
group.getChildren().add(b2);
group.getChildren().add(b3);

同时,Java也提供了一次性新增的方法addAll(),这个方法的参数为可变参数,可以接受多个组件

1
group.getChildren().addAll(b1,b2,b3);

移除组件

因为group.getChildren()返回的是一个List,所以对组件的移除使用remove()方法的类型

1
group.getChildren().remove(b3);

设置组件位置以及宽高

位置

单个组件设置大小

1
2
3
4
5
6
b1.setLayoutX(0);
b1.setLayoutY(0);
b2.setLayoutX(100);
b2.setLayoutY(140);
b3.setLayoutX(260);
b3.setLayoutY(300);

通过group统一设置主键大小

1
2
3
4
5
6
7
8
int i=1;	
Object[] ob =group.getChildren().toArray();
for(Object obj:ob) {
Button b=(Button) obj;
b.setLayoutX(i*50+0);
b.setLayoutY(i*20);
i=i+2;
}

宽高

系统有方法管理是否要自动设置宽高,当参数为false时,组件宽高为0,所以无法显示,默认为true

1
group.setAutoSizeChildren(false);

单个组件设置

1
2
3
//设置按钮、高
b1.setPrefWidth(40);
b1.setPrefHeight(30);

批量修改

1
2
3
4
5
6
Object[] ob =group.getChildren().toArray();
for(Object obj:ob) {
Button b=(Button) obj;
b.setPrefWidth(40);
b.setPrefHeight(30);
}

其它小功能

批量设置组件透明

1
2
//设置所有按钮0.5透明
group.setOpacity(0.5);

判断当前是否有组件

这个方法实际判断的是该点是否为某组件左上角,例如一个组件的左上角为(0,0)宽高为(10*10),那么group.contains(1,1)的返回值为false

1
2
//判断该节点是否为某组件左上角
System.out.println("(30,30)是否有组件:"+group.contains(30,30)+"\n(0,0)是否有组件:"+group.contains(0,0));

监听Group是否有组件增删

1
2
3
4
5
6
//监听组建增减
group.getChildren().addListener(new ListChangeListener<Node> (){
public void onChanged(Change<? extends Node> c) {
// TODO Auto-generated method stub
System.out.println("当前自建数量"+c.getList().size());
}});