版权声明:博客知识产权来源命运的信徒,切勿侵权 https://blog.csdn.net/qq_37591637/article/details/86525058
知识回顾
边框布局管理器
BorderLayout(边框布局管理器)是 Window、JFrame 和 JDialog 的默认布局管理器。边框布局管理器将窗口分为 5 个区域:North、South、East、West 和 Center。其中,North 表示北,将占据面板的上方;Soufe 表示南,将占据面板的下方;East表示东,将占据面板的右侧;West 表示西,将占据面板的左侧;中间区域 Center 是在东、南、西、北都填满后剩下的区域,如图 1 所示。
提示:边框布局管理器并不要求所有区域都必须有组件,如果四周的区域(North、South、East 和 West 区域)没有组件,则由 Center 区域去补充。如果单个区域中添加的不只一个组件,那么后来添加的组件将覆盖原来的组件,所以,区域中只显示最后添加的一个组件。
BorderLayout 布局管理器的构造方法如下所示。
- BorderLayout():创建一个 Border 布局,组件之间没有间隙。
- BorderLayout(int hgap,int vgap):创建一个 Border 布局,其中 hgap 表示组件之间的横向间隔;vgap 表示组件之间的纵向间隔,单位是像素。
关键点有两个
1、设置窗体的模式是边框布局模式
2、按钮组件不需要放在面板里面,如果把按钮组件放在面板里面就不会呈现出想要的效果了
package cn.com.planet;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class LayOut1 {
/*author:命运的信徒
* date:2019/1/17
* arm:swing的布局
*/
private static void panle(){
//创建窗体
JFrame frame=new JFrame();
//窗体的名称
frame.setTitle("swing布局模式");
//窗体的大小
frame.setSize(300, 300);
//这个很重要,设置布局的模式
frame.setLayout(new BorderLayout());
//关闭窗口就是关闭程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//开始布局
JButton jb0=new JButton("上");
JButton jb1=new JButton("下");
JButton jb2=new JButton("中");
JButton jb3=new JButton("左");
JButton jb4=new JButton("右");
frame.getContentPane().add(jb0, BorderLayout.NORTH);
frame.getContentPane().add(jb1, BorderLayout.SOUTH);
frame.getContentPane().add(jb2, BorderLayout.CENTER);
frame.getContentPane().add(jb3, BorderLayout.EAST);
frame.getContentPane().add(jb4, BorderLayout.WEST);
//设置窗体可见
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
panle();
}
}
效果如下
但是不太明白,为什么我把按钮放在组件里面,再把组件放在窗体里面,就变成全部横着排列的按钮?
我想可能是这个布局方式只适用于一个面板里面的