Java:对于Borderlayout布局管理的理解
2017-06-02 18:33
411 查看
第一种,简单额只有一层的东南西北中的分区管理就不介绍了,主要介绍第二种
第二种,复杂的borderlayout布局,即在任何区中可以用容器(JPanel)来代替控件
例如下图
这种布局管理的思想是这样子的:
1、可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。
2、在东、西、南、北和中间位置添加中间容器,中间容器中再进行布局,并添加相应的组件,已达到复制补间的效果。
3、南、北位置控件各占据一行,控件宽度将自动布满整行。东、西和中间位置占据一行;若东、西、南、北位置无控件,则中间控件将自动布满整个屏幕。若东、西、南、北位置中无论哪个位置没有控件,则中间位置控件将自动占据没有控件的位置。
4、强调一下container、Jpanel等的布局管理器是不可以共享的!!!每个容器都得有其自己的布局管理器
代码如下:
第二种,复杂的borderlayout布局,即在任何区中可以用容器(JPanel)来代替控件
例如下图
这种布局管理的思想是这样子的:
1、可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。
2、在东、西、南、北和中间位置添加中间容器,中间容器中再进行布局,并添加相应的组件,已达到复制补间的效果。
3、南、北位置控件各占据一行,控件宽度将自动布满整行。东、西和中间位置占据一行;若东、西、南、北位置无控件,则中间控件将自动布满整个屏幕。若东、西、南、北位置中无论哪个位置没有控件,则中间位置控件将自动占据没有控件的位置。
4、强调一下container、Jpanel等的布局管理器是不可以共享的!!!每个容器都得有其自己的布局管理器
代码如下:
package hello; import javax.swing.JFrame; import javax.swing.*; import java.awt.*; import java.awt.BorderLayout; public class Lay extends JFrame { /** * */ private static final long serialVersionUID = 1L;//这一行必须要写!!! private JButton[] contro=new JButton[9];//创建一个九个控件的控件数组 private String[] name={"5","01","02","03","04","1","2","3","4"}; private Container container;//创建容器; private BorderLayout layout;//创建一个borderlayout布局控制器 private JPanel In=new JPanel(); public Lay()//构造函数 { super("实例"); layout=new BorderLayout(); container=getContentPane(); container.setLayout(layout);//给定布局方式 for(int i=0;i<=8;i++) { contro[i]=new JButton(name[i]); //container.add(contro[i]); } //container.add("Center", contro[0]);//中间的区域会空出来 container.add("North", contro[1]); container.add("South", contro[2]); container.add("East", contro[3]); container.add("West", contro[4]); In.setLayout(new BorderLayout());//每个容器都用其自己本身的布局管理器 //上述代码很重要!!! In.add("North", contro[5]); In.add("Center", contro[0]); In.add("South", contro[6]); In.add("East", contro[7]); In.add("West", contro[8]); container.add("Center",In);//将两个布局进行叠加 setVisible(true); setSize(800,600); } public static void main(String[] args) { Lay newpane=new Lay(); newpane.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
相关文章推荐
- JAVA中深拷贝与浅拷贝(在网上找到的) 希望对于理解深拷贝与浅拷贝有帮助
- Java几个常用的布局管理器类
- Java 简单布局管理
- Java笔记之布局管理
- Java- 几种常见的布局管理
- java中域的初始化,静态块和构造器的例子(考验一下初学者对于java的理解程度)
- 对于as3 falsh 和 android java的一点理解
- java新手对于值传递和引用传递的理解
- 对于Java静态内部类的理解
- JAVA中深拷贝与浅拷贝(在网上找到的) 希望对于理解深拷贝与浅拷贝有帮助
- java面板的使用与五种界面布局方式(FLowLayout、BorderLayout、GridLayout、CardLayout、BoxLayout)
- java自定义布局管理(二)
- 不可忽视的布局属性layout_weight,彻底纠正网上很多对于该属性的片面理解
- 个人对于JAVA异常的理解
- 对于java中classpath和path的理解
- JAVA进行GUI程序设计之布局管理(中)
- java中对于String类的理解
- 三十、Java图形化界面设计——布局管理器之BorderLayout(边界布局)
- Java AWT基础及布局管理
- Java Layout(页面布局(--FlowLayout,--BorderLayout,--GridLayout))