Swing---布局管理器

布局管理器:确定组件的摆放位置,顺序,大小等

BorderLayOut 边界布局,把容器分为东西南北中五个部门,每一个部分只能摆放一个组件,这是顶级容器的默认的布局管理器 
该容器组件进行,并调整其大小(会自动拉申组件,一般情况下是在五个方向上摆放中间容器,再到中间容器中添加需要的组件) 

getContentPane()方法返回的容器默认的布局管理器就是边界布局

FlowLayOut 流式布局 组件从左往右顺序摆放,该布局管理器不会改变组件的默认大小 它是JPanel的默认布局管理器

空布局(要调用容器的setLayout方法,并传递null ),此时添加到容器中的组件必需调用setBounds(int width,int height,int x ,inty )方法确定组件自身摆放在容器的哪个位置

注:1)在边界布局管理器的某个方向要摆放多个组件,可以先添加一个中间容器(Japnel),再把组件添加到中间容器中.

       2)改变某个容器的布局管理,可以调用容器的setLayout(LayoutManager )方法传入一个布局管理器类对象

CardLayout 卡片布局管理器 (多个中间容器添加在卡片布局管理器的容器中)  
注:1. 调用卡片布管理器的容器(JPanel) 的add方法必需给两个参数  add(Component c,String name)  ,
                  第二个参数用于标识添加到卡片布局的容器,用于在监听器根据name调出相应子容器.
      2.在监听器中 要调用CardLayout的show(Container c,String name)方法用于显示子容器.

 应用程序的主界面,一般是用BorderLayout(东西南北中)
 流式布局默认将组件从左往右摆放,将按钮从上往下摆,可以按钮的容器(JPanle) 改成空布局

 所有的容器,组件都有setPreferredSize(new Dimension(int 宽度,int 高度))用于设置组件或容器的首选的宽度高度


package com.view;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;


import com.listener.ChangPanelListener;


import java.awt.FlowLayout;
import java.awt.CardLayout;


public class MainFrame extends JFrame {

private JPanel contentPane;

JPanel carLayoutPanel = new JPanel();//卡片布局的容器
CardLayout cardLayout = new CardLayout(0, 0);
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrame frame = new MainFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}


/**
* Create the frame.
*/
public MainFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);

JPanel panel = new JPanel();
FlowLayout flowLayout = (FlowLayout) panel.getLayout();
flowLayout.setAlignment(FlowLayout.LEFT);
contentPane.add(panel, BorderLayout.NORTH);

JButton btnXFKD = new JButton("消费开单");
panel.add(btnXFKD);

JButton btnHYGL = new JButton("会员管理");
panel.add(btnHYGL);


contentPane.add(carLayoutPanel, BorderLayout.CENTER);
carLayoutPanel.setLayout(cardLayout);



JPanel jpXFKD  = new JPanel();
jpXFKD.setBackground(Color.GREEN);
carLayoutPanel.add(jpXFKD, "xfkd");


HyglJPanel jpHYGL  = new HyglJPanel(this);
//jpHYGL.setBackground(Color.BLUE);
carLayoutPanel.add(jpHYGL, "hygl");

//注册监听器
ChangPanelListener lis = new ChangPanelListener(this);

btnHYGL.addActionListener(lis);
btnXFKD.addActionListener(lis);


}


public JPanel getCarLayoutPanel() {
return carLayoutPanel;
}


public CardLayout getCardLayout() {
return cardLayout;
}





}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值