布局管理器:布局管理就是用于指定组件的 摆放位置的。
每种布局管理器都有自己的摆放风格
Borderlayout 要注意的事项:
1. 使用Borderlayout添加组件的时候,如果没有指定组件的方位,那么默认添加到中间的位置上。
2. 使用BorderLayout的时候,如果东南西北那个方向没有对应 的组件,那么中间位置的组件就会占据其空缺的位置。
每种布局管理器都有自己的摆放风格
BorderLayout(边框布局管理器)
摆放的风格: 上北 、 下南 、 左西、 右东 , 中Borderlayout 要注意的事项:
1. 使用Borderlayout添加组件的时候,如果没有指定组件的方位,那么默认添加到中间的位置上。
2. 使用BorderLayout的时候,如果东南西北那个方向没有对应 的组件,那么中间位置的组件就会占据其空缺的位置。
3. 窗体默认的布局管理器就是Borderlayout.
public class Demo1 {
public static void main(String[] args) {
JFrame frame = new JFrame("边框布局管理器");
//创建一个边框布局管理器
BorderLayout borderLayout = new BorderLayout();
//让borderlayout管理frame窗体。
frame.setLayout(borderLayout);
frame.add(new JButton("北"),BorderLayout.NORTH);
frame.add(new JButton("南"),BorderLayout.SOUTH);
frame.add(new JButton("西"),BorderLayout.WEST);
frame.add(new JButton("东"),BorderLayout.EAST);
frame.add(new JButton("中"),BorderLayout.CENTER);
//初始化窗体
FrameUtil.initFrame(frame, 300, 300);
}
}
流式布局管理器(FlowLayout)
流式布局管理器要注意的事项:
1. 流式布局管理器默认情况是居中对齐的。
2. panel默认的局部管理器就是FlowLayout.
1. 流式布局管理器默认情况是居中对齐的。
2. panel默认的局部管理器就是FlowLayout.
public class Demo2 {
public static void main(String[] args) {
JFrame frame = new JFrame("窗体");
//创建面板
JPanel panel = new JPanel();
frame.add(panel);
//创建一个流式布局管理器
FlowLayout flowLayout = new FlowLayout(FlowLayout.LEFT, 0, 30);// FlowLayout.LEFT 指定对齐的方式。
//让流式布局管理器管理frame窗体
panel.setLayout(flowLayout);
panel.add(new JButton("按钮1"));
panel.add(new JButton("按钮2"));
panel.add(new JButton("按钮3"));
panel.add(new JButton("按钮4"));
//初始化窗体
FrameUtil.initFrame(frame, 300, 300);
}
}
表格布局管理器(GridLayout)
注意的事项: 如果表格数量不够使用时,默认会多加一列。
public class Demo3 {
public static void main(String[] args) {
JFrame frame = new JFrame("计算器");
//创建表格布局管理器
GridLayout gridLayout = new GridLayout(4, 4, 1, 2);
//让窗体交给表格布局管理器管理
frame.setLayout(gridLayout);
for(int i = 0 ; i<10; i++){
frame.add(new JButton(i+""));
}
frame.add(new JButton("+"));
frame.add(new JButton("-"));
frame.add(new JButton("*"));
frame.add(new JButton("/"));
frame.add(new JButton("="));
frame.add(new JButton("."));
// frame.add(new JButton("aa"));
//初始化窗体
FrameUtil.initFrame(frame, 300, 300);
}
}
卡片布局管理器(CardLayout)
public class Demo4 {
public static void main(String[] args) {
JFrame frame = new JFrame("卡片布局管理器");
final JPanel panel = new JPanel();
frame.add(panel);
//创建一个卡片布局管理器
final CardLayout cardLayout = new CardLayout();
panel.setLayout(cardLayout);
//往面板添加数据
JButton button = new JButton("黑桃A");
panel.add(button);
panel.add(new JButton("红桃K"));
panel.add(new JButton("梅花6"));
panel.add(new JButton("方块2"));
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cardLayout.next(panel); //下一张
// cardLayout.previous(parent); 上一张
}
});
//初始化窗体
FrameUtil.initFrame(frame,300, 300);
}
}