JAVA布局管理器

JAVA布局管理器分为FlowLayout, BorderLayout, CardLayout, GridLayout等,每个Frame对象可以分配一种布局管理模式。

使用BorderLayout的时候,界面被划分成上下左右中心五个部分,对应英文里的(North, South, West, East, Center),每一个部分还可以嵌套一个Panel控件,

Panel控件也可以应用布局管理器,所以在JAVA设计中,复杂的界面往往是有多种布局管理模式嵌套而成。

下面贴一段代码,综合演示了JAVA布局管理器的使用。

package layout;
import java.awt.*;
import java.awt.event.*;
/**
 * 聊天室界面模拟,演示布局管理器的综合使用
 */
public class GridLayoutUse extends  Frame implements WindowListener{
	public GridLayoutUse(){
		super("在线聊天室");
		this.addWindowListener(this);
		initUI();
	}


	
	/**
	 * 初始化界面
	 */
	private void initUI(){
		Panel pNorth = initNorth();
		this.add(pNorth, BorderLayout.NORTH);
		
		Panel pEast  = initEast();
		this.add(pEast, BorderLayout.EAST);
		
		Panel pCenter = initCenter();
		this.add(pCenter, BorderLayout.CENTER);
		
		this.setSize(450,500);
		this.setVisible(true);
	}
	
	/**
	 * 初始化界面上部
	 */
	private Panel initNorth(){
		Panel p = new Panel();
		Label lbTitle = new Label("聊天室");
		p.add(lbTitle);
		p.setBackground(Color.PINK);
		return p;
	}
	
	
	/**
	 * 初始化界面右侧
	 */
	private Panel initEast(){
		Panel p = new Panel();
		BorderLayout bl = new BorderLayout();
		p.setLayout(bl);
		Label lbTitle = new Label("当前在线");
		List listUser = new List();
		listUser.add("所有人");
		listUser.add("Miao");
		listUser.add("Wang");
		
		p.add(lbTitle, BorderLayout.NORTH);
		p.add(listUser,BorderLayout.CENTER);
		
		p.setBackground(Color.CYAN);
		return p;
	}

	/**
	 * 初始化主界面中心
	 * @return 主界面中心面板
	 */
	private Panel initCenter(){
		Panel p = new Panel();
		BorderLayout bl = new BorderLayout();
		p.setLayout(bl);
		TextArea ta = new TextArea();
		ta.append("You enter the chatroom.\n");
		ta.append("You say \"Hi\" to everyone.");
		ta.setEditable(false);
		ta.setBackground(Color.ORANGE);
		p.add(ta,BorderLayout.CENTER);
		
		//initialize south
		Panel pSouth = new Panel();
		BorderLayout bl2 = new BorderLayout();
		pSouth.setLayout(bl2);
		Choice ch = new Choice();
		ch.add("All");
		ch.add("Wang");
		pSouth.add(ch, BorderLayout.WEST);
		TextField tf = new TextField(20);
		pSouth.add(tf, BorderLayout.CENTER);
		Button btn = new Button("Send");
		pSouth.add(btn, BorderLayout.EAST);
		
		p.add(pSouth, BorderLayout.SOUTH);
		return p;
	}
	
	public static void main(String[] agrs){
		GridLayoutUse crf = new GridLayoutUse();
	}



	@Override
	public void windowActivated(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("activated");
	}



	@Override
	public void windowClosed(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("Closed");
	}



	@Override
	public void windowClosing(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("Closing");
		System.exit(0);
		
	}



	@Override
	public void windowDeactivated(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("deactivated");
	}



	@Override
	public void windowDeiconified(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("deiconified");
		
	}



	@Override
	public void windowIconified(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("iconified");
		
	}



	@Override
	public void windowOpened(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("open");
	}


}

运行后代码界面效果如下:

 


 

 

此处只写了界面,没有完善功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值