Swing学习----------java的布局管理学习总结(一)
2017-05-12 21:20
501 查看
最近java学习了击中布局管理,现来依此总结其各自特点:
1.FlowLayout布局管理:
a.FlowLayout布局规律:从上到下,从左到右,根据框架的长和宽,组件从第一行依此向右排列,如果长度不够则自动排列到下一行;
b.如果在程序中使用了FLowLayout布局,就不能再设置组件的位置
c.使用无参的FlowLayout()方法添加组件,默认是居中排列的,我们可以看到JAVA源码中是这样定义无参的FlowLayout方法的:
d.Panel类的默认布局是使用FlowLayout
后面添加的组件是每次把上一次添加的往左边挤,可以通过设置FlowLayout的参数来确定排列方法,整个流布局的示例代码如下:
测试结果如下:
2.BorderLayout布局管理
a.在JFrame中,默认布局是使用BorderLayout
b.BorderLayout布局管理器将容器划分为东南西北中五个区域,如果在使用add方法添加组件时没有指定插入的位置,则默认把所有组件都放置到中部着一个位置,并且后放的组件会覆盖之前的组件,所以最终看到的是最后放置的组件,如下图所示:
d.如果东南西北某个方向不添加组件,将会由其他三个相连的组件占据,但是如果中部不添加组件,会把中部空出来,演示如图:
3.GridLayout布局管理
a.GridLayout将容器划分为大小相等的若干行列的网格,组件大小随着容器的大小变化而变化,演示及代码如下:
b.GridLayout的排列规则是行优先,例如一个3x3的网格,首先第1个组件填充第1行,第2个组件填充第2行,第3个组件填充第3行,第4个组件添加时,把第1,2个组件挤到第1行,第3个和第4个就占据第2行。以此类推,第5,6个组件填充第三行,当第7个组件添加时,第1,2,3个组件就占据了第一行,后面的就不说了......
d.GridLayout在添加组件的时候,在add方法中设置插入的位置可以改变组件的位置,网格第一个组件只有默认位置0可以占据,第二个组件有0和1两个位置可以填充,依次类推。如果填写一个错误的位置,如:第三个组件填写插入的位置为3,程序会报错。当后面的组件占据前面的组件的位置时,被占据的组件往后移动一个位置,其他的依次往后移动一个位置。
1.FlowLayout布局管理:
a.FlowLayout布局规律:从上到下,从左到右,根据框架的长和宽,组件从第一行依此向右排列,如果长度不够则自动排列到下一行;
b.如果在程序中使用了FLowLayout布局,就不能再设置组件的位置
c.使用无参的FlowLayout()方法添加组件,默认是居中排列的,我们可以看到JAVA源码中是这样定义无参的FlowLayout方法的:
d.Panel类的默认布局是使用FlowLayout
后面添加的组件是每次把上一次添加的往左边挤,可以通过设置FlowLayout的参数来确定排列方法,整个流布局的示例代码如下:
public test(){ /** * BorderLayout布局学习 */ this.setTitle("布局管理器的学习"); this.setSize(300, 400); this.setLocation(400, 300); this.setLayout(new FlowLayout()); JButton btn1=new JButton("button1"); JButton btn2=new JButton("button2"); JButton btn3=new JButton("button3"); JButton btn4=new JButton("button4"); JButton btn5=new JButton("button5"); this.add(btn1); this.add(btn2); this.add(btn3); this.add(btn4); this.add(btn5); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new test(); }
测试结果如下:
2.BorderLayout布局管理
a.在JFrame中,默认布局是使用BorderLayout
b.BorderLayout布局管理器将容器划分为东南西北中五个区域,如果在使用add方法添加组件时没有指定插入的位置,则默认把所有组件都放置到中部着一个位置,并且后放的组件会覆盖之前的组件,所以最终看到的是最后放置的组件,如下图所示:
public void testBorderLayout(){ this.setTitle("布局管理器的学习"); this.setSize(300, 400); this.setLocation(400, 300); this.setLayout(new BorderLayout()); JButton btn1=new JButton("button1"); JButton btn2=new JButton("button2"); JButton btn3=new JButton("button3"); JButton btn4=new JButton("button4"); JButton btn5=new JButton("button5"); this.add(btn1); this.add(btn2); this.add(btn3); this.add(btn4); this.add(btn5); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); }c.如果改变容器的大小,四边的组件的长度或者宽度不变,中间组件的长度和宽度随着容器大小变化,演示如图:
public void testBorderLayout(){ this.setTitle("布局管理器的学习"); this.setSize(300, 200); this.setLocation(400, 300); this.setLayout(new BorderLayout()); JButton btn1=new JButton("button1"); JButton btn2=new JButton("button2"); JButton btn3=new JButton("button3"); JButton btn4=new JButton("button4"); JButton btn5=new JButton("button5"); this.add(btn1,"North"); this.add(btn2,"West"); this.add(btn3,"East"); this.add(btn4,"South"); this.add(btn5,"Center"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); }
d.如果东南西北某个方向不添加组件,将会由其他三个相连的组件占据,但是如果中部不添加组件,会把中部空出来,演示如图:
3.GridLayout布局管理
a.GridLayout将容器划分为大小相等的若干行列的网格,组件大小随着容器的大小变化而变化,演示及代码如下:
public void testGridLayout(){ this.setTitle("布局管理器的学习"); this.setSize(300, 200); this.setLocation(400, 300); this.setLayout(new GridLayout(3,3)); JButton[] btn=new JButton[9]; for(int i=0;i<btn.length;i++){ btn[i]=new JButton(i+""); this.add(btn[i]); } this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); }
b.GridLayout的排列规则是行优先,例如一个3x3的网格,首先第1个组件填充第1行,第2个组件填充第2行,第3个组件填充第3行,第4个组件添加时,把第1,2个组件挤到第1行,第3个和第4个就占据第2行。以此类推,第5,6个组件填充第三行,当第7个组件添加时,第1,2,3个组件就占据了第一行,后面的就不说了......
d.GridLayout在添加组件的时候,在add方法中设置插入的位置可以改变组件的位置,网格第一个组件只有默认位置0可以占据,第二个组件有0和1两个位置可以填充,依次类推。如果填写一个错误的位置,如:第三个组件填写插入的位置为3,程序会报错。当后面的组件占据前面的组件的位置时,被占据的组件往后移动一个位置,其他的依次往后移动一个位置。
相关文章推荐
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- java 学习笔记---布局管理组件
- Swing超基础学习总结——3、复杂布局:GridBagLayout
- JAVA——Swing入门和布局管理
- java Swing布局管理之BoxLayout布局
- Java图形界面-Swing入门与布局管理
- java Swing布局管理之GridBagLayout布局
- Java学习笔记之用Box布局swing界面
- java系统学习(十七) --------Swing组件与布局管理器
- Java Swing 绝对布局管理方法,null布局(转)
- java 学习笔记---布局管理组件
- Java Swing 绝对布局管理方法,null布局【图】
- JavaSwing学习总结