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

本文介绍了Java AWT中的四种布局管理器:BorderLayout、FlowLayout、GridLayout和CardLayout。 BorderLayou将组件分为五个区域;FlowLayout按顺序排放组件;GridLayout创建网格分布;CardLayout实现翻牌效果,允许在不同组件间切换。通过示例代码展示了各个布局管理器的使用方法和效果。
摘要由CSDN通过智能技术生成

在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分别表示组件之间的水平间隙和垂直间隙

效果如图

1343650398_9654.png

2.FlowLayout

FlowLayout是流式布局,将组件依次摆放

f.setLayout(new FlowLayout(FlowLayout.RIGHT));中的参数是右对齐。当然,也有左对齐,默认居中

效果如下

1343650886_2984.png

3.GridLayout

GridLayout是网格布局,将容器分为网格。

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

效果如下

1343651147_5505.png

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

}

}

效果如图

1343654383_6455.png

1343654342_7809.png

1343654400_4346.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值