天天看點

java什麼是布局管理器_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());

}

@Override

public void windowOpened(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowClosing(WindowEvent e) {

// TODO Auto-generated method stub

System.exit(0);

}

@Override

public void windowClosed(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowIconified(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowDeiconified(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowActivated(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowDeactivated(WindowEvent e) {

// TODO Auto-generated method stub

}

}1.BorderLayout

BorderLayout将Frame分為5部分,Center,North,South,West,East。BorderLayout也是Frame的預設的布局。

f.setLayout(new BorderLayout(10,10));其中的兩個10分别表示元件之間的水準間隙和垂直間隙

效果如圖

java什麼是布局管理器_Java布局管理器

2.FlowLayout

FlowLayout是流式布局,将元件依次擺放

f.setLayout(new FlowLayout(FlowLayout.RIGHT));中的參數是右對齊。當然,也有左對齊,預設居中

效果如下

java什麼是布局管理器_Java布局管理器

3.GridLayout

GridLayout是網格布局,将容器分為網格。

f.setLayout(new GridLayout(3,2,10,10));将容器分為3行2列,格子之間的水準和垂直間隙都為10.

效果如下

java什麼是布局管理器_Java布局管理器

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(){

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

cl.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());

}

@Override

public void windowOpened(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowClosing(WindowEvent e) {

// TODO Auto-generated method stub

System.exit(0);

}

@Override

public void windowClosed(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowIconified(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowDeiconified(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowActivated(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowDeactivated(WindowEvent e) {

// TODO Auto-generated method stub

}

}

效果如圖

java什麼是布局管理器_Java布局管理器
java什麼是布局管理器_Java布局管理器
java什麼是布局管理器_Java布局管理器