Java布局管理器
在AWT中,有五种布局管理器分别是:
BorderLayout
FlowLayout
GridLayout
CardLayout
GridBagLayout
先看看代码
import java.awt.Button;import java.awt.Color;import java.awt.Frame;import java.awt.GridLayout;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class MyFrame implements WindowListener{public static void main(String []args){Frame f=new Frame("zhycheng");f.setSize(300, 400);f.setLocation(400, 300);f.setBackground(Color.CYAN);f.setLayout(new BorderLayout(10,10));//f.setLayout(new FlowLayout(FlowLayout.RIGHT));//f.setLayout(new GridLayout(3,2,10,10));Button btn=new Button("winsun");f.add(btn,"Center");Button btn1=new Button("north");f.add(btn1,"North");Button btn2=new Button("South");f.add(btn2,"South");Button btn3=new Button("West");f.add(btn3,"West");Button btn4=new Button("East");f.add(btn4,"East");f.setVisible(true);f.addWindowListener(new MyFrame());}@Overridepublic void windowOpened(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubSystem.exit(0);}@Overridepublic void windowClosed(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowIconified(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowDeiconified(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowActivated(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowDeactivated(WindowEvent e) {// TODO Auto-generated method stub}}1.BorderLayoutBorderLayout将Frame分为5部分,Center,North,South,West,East。BorderLayout也是Frame的默认的布局。
f.setLayout(new BorderLayout(10,10));其中的两个10分别表示组件之间的水平间隙和垂直间隙
效果如图

2.FlowLayout
FlowLayout是流式布局,将组件依次摆放
f.setLayout(new FlowLayout(FlowLayout.RIGHT));中的参数是右对齐。当然,也有左对齐,默认居中
效果如下

3.GridLayout
GridLayout是网格布局,将容器分为网格。
f.setLayout(new GridLayout(3,2,10,10));将容器分为3行2列,格子之间的水平和垂直间隙都为10.
效果如下

4.CardLayout
CardLayout可以实现翻牌的效果。CardLayout对象的next()方法来实现代码有所改动,所以我将全部的代码都贴出来
import java.awt.Button;import java.awt.CardLayout;import java.awt.Color;import java.awt.Frame;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class MyFrame implements WindowListener{public static void main(String []args){final Frame f=new Frame("zhycheng");f.setSize(300, 400);f.setLocation(400, 300);f.setBackground(Color.CYAN);//f.setLayout(new BorderLayout(10,10));//f.setLayout(new FlowLayout(FlowLayout.RIGHT));//f.setLayout(new GridLayout(3,2,10,10));final CardLayout cl=new CardLayout();f.setLayout(cl);ActionListener al=new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubcl.next(f);}};Button btn=new Button("winsun");btn.addActionListener(al);f.add(btn,"Center");Button btn1=new Button("north");btn1.addActionListener(al);f.add(btn1,"North");Button btn2=new Button("South");btn2.addActionListener(al);f.add(btn2,"South");Button btn3=new Button("West");btn3.addActionListener(al);f.add(btn3,"West");Button btn4=new Button("East");btn4.addActionListener(al);f.add(btn4,"East");f.setVisible(true);f.addWindowListener(new MyFrame());}@Overridepublic void windowOpened(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubSystem.exit(0);}@Overridepublic void windowClosed(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowIconified(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowDeiconified(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowActivated(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowDeactivated(WindowEvent e) {// TODO Auto-generated method stub}}效果如图


