布局管理器类型
FlowLayout:组件在一行中从左到右水平排列,填满后重排。 这是Panel,小程序的默认布局管理器。
BorderLayout :北、南、东、西、中,这是窗口、帧和故障的默认布局管理器。
GridLayout :将组件定位为行和列网格
GridBagLayout :更复杂的功能网格布局
CardLayout :每个组件作为一个卡,容器只显示多张卡中的一张,并确定容器的布局
1 .集装箱的组件布局
(1)布局管理器(layout manager ) )。
确定组件在容器中的位置和大小。
调用容器的setLayout布局管理器对象”方法将布局管理器对象指定给容器。
如果容器需要放置零部件并确定其大小,则会向布局管理器对象发送一条消息,以完成该任务。
)2)直接管理组件
调用容器的setlayout(null )方法关闭布局管理器。
调用每个组件的setLocation ()方法来确定组件的位置。
通过调用每个组件的setSize ()方法来确定其大小。
)3)直接管理组件失去平台相关性。
2 .布局管理器
构造函数:
FlowLayout (;
flowlayout(intalign,int hgap,int vgap );
align :对齐方式:左中心灯光
hgap :组件的水平间距(像素) ) ) )。
vgap :组件的垂直间距
使用无参数构造函数创建的FlowLayout对象围绕CENTER对齐,组件之间的所有垂直和垂直间距均为5像素
framef=newframe(flowlayout );
f.setsize (400,300 ); //不起作用
f.setbackground(color.gray );
f.setlayout(newflowlayout ) flowlayout.left,10,20 );
B1=newbutton(button1);
B2=newbutton(button2);
B3=newbutton(button3);
f.add(B1;
f.add(B2;
f.add(B3;
f.setvisible(true );
f.pack (;
3.BorderLayout布局管理器
setlayout(newborderlayout ) )
add(B1,BorderLayout.NORTH ); //东、西、南、北中
当容器大小改变时,组件的相对位置不会改变
setlayout(newborderlayout ) )
add(B1,BorderLayout.NORTH );
当容器大小改变时,组件的相对位置不会改变
framef=newframe(borderlayout );
f.setsize (200,200 );
B1=newbutton(button1);
.
B5=newbutton(button5);
f.add(B1,BorderLayout.NORTH );
f.add(B2,BorderLayout.SOUTH );
f.add(B3,BorderLayout.WEST );
f.add(B4,BorderLayout.EAST );
f.add(B5,BorderLayout.CENTER );
f.setvisible(true );
4 .网格布局管理器
作为布局编辑器创建GridLayout对象,并指定分割网格的行数和列数。
设置布局(new gridlayout ) (行数、列数);
setlayout(newgridlayout ) (行数、列数、行间隔、列间隔);
调用容器的方法add ) )将组件添加到容器中。 组件填充容器的顺序为第一行的第一个、第一行的第二个、……
必须在每个网格中输入程序集。 如果要将网格留空,可以添加空标签。
添加(新标签) );
framef=newframe(gridlayout );
f.setlayout(newgridlayout ) ) 2,3 );
f.setsize (200,100 );
f.setbackground(color.gray );
B1=newbutton('1);
.
B6=newbutton('6);
f.add(B1;
.
f.setvisible(true );