作者:电脑信息网日期:
返回目录:设置问题
直接用addView(child, width, height).size()来设置就可以了。
因为GridLayout里面百的组件是在变化的,所有需要动态设置子组件的Size和它们之间的间距。
还可以这么度做:在父类容回器中把子类答容器的参数通过修改子类容器构造函数的方式传给子类容器,这样就可以在父类容器中直接修改子类容器的属性了。
你用的是其中的一种构造方法,还有一种是带有四个参数的,
比如myPanel.setLayout(new GridLayout(1,4,5,6));
5是水平间距,6是垂直间距
1.GridLayout设置:
GridLayout layout = new GridLayout();
// 设置容器的列数
layout.numColumns = 4;
// 设置容器上的组件是否等距分开
layout.makeColumnsEqualWidth = false;等价写法:GridLayout layout = new GridLayout(4, false);
2.GridData.grabExcessHorizontalSpace、GridData.grabExcessVerticalSpace
①GridData.grabExcessHorizontalSpace
GridData gridData = new GridData();
// 当容器大小变化e79fa5e98193e58685e5aeb9336时,组件所在列空间横向随容器的变化而变化
gridData.grabExcessHorizontalSpace = true;等价写法:GridData gridData = new GridData(GridData.GRAB_HORIZONTAL);
②GridData.grabExcessVerticalSpace
GridData gridData = new GridData();
// 当容器大小变化时,组件所在行空间纵向随容器的变化而变化
gridData.grabExcessVerticalSpace = true;等价写法:GridData gridData = new GridData(GridData.GRAB_VERTICAL);
3.GridData.FILL_HORIZONTAL、GridData.FILL_VERTICAL、GridData.FILL_BOTH
① GridData.FILL_HORIZONTAL:
GridData gridData = new GridData();
// 横向对齐方式
gridData.horizontalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = true;等价写法:GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
②GridData.FILL_VERTICAL
GridData gridData = new GridData();
// 纵向对齐方式