Swing框架实例

 

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

/**
 * 
 * @author Coffey
 * 
 */
public class Chat extends JFrame implements ActionListener {

	Dimension faceSize; // 框架的大小

	/* 容器及布局管理器对象 */
	Container con; // 容器对象
	GridBagLayout gbl; // 网格包布局管理器对象

	/* 所使用的面板对象 */
	JPanel leftPanel; // 左则的面板
	JPanel topPanel; // 左上的面板
	JPanel downPanel; // 左下的面板
	JPanel rightPanel; // 右则的面板
	
	/**
	 * 构造函数
	 */
	public Chat() {

		// 初始化函数
		init();

		// 设置框架的大小
		this.setSize(faceSize);

		// 添加框架的关闭事件处理
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// 设置运行时窗口的位置
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		this.setLocation((int) (screenSize.width - faceSize.getWidth()) / 2,
				(int) (screenSize.height - faceSize.getHeight()) / 2);

		// 设置标题
		this.setTitle(strFrameTitle);

		// 是否最大化
		this.setResizable(true);

		// 是否可视化
		this.setVisible(true);
	}

	/**
	 * 设置左上面板网格包布局管理器
	 */
	private GridBagConstraints getTopGridBagConstraints() {
		// 组件约束对象
		GridBagConstraints gbc = new GridBagConstraints();
		// 在水平方向和垂直方向上同时调整组件大小
		gbc.fill = GridBagConstraints.BOTH;
		// 分布额外的水平空间
		gbc.weightx = 3.0;
		// 分布额外的垂直空间
		gbc.weighty = 3.0;
		// 显示区域的一行中的单元格数
		gbc.gridwidth = GridBagConstraints.REMAINDER;
		// 显示区域的一列中的单元格数
		gbc.gridheight = 1;
		// 返回约束对象
		return gbc;
	}

	/**
	 * 设置左下面板网格包布局管理器
	 */
	private GridBagConstraints getDownGridBagConstraints() {
		// 组件约束对象
		GridBagConstraints gbc = new GridBagConstraints();
		// 在水平方向和垂直方向上同时调整组件大小
		gbc.fill = GridBagConstraints.BOTH;
		// 分布额外的水平空间
		gbc.weightx = 1.0;
		// 分布额外的垂直空间
		gbc.weighty = 1.0;
		// 显示区域的一行中的单元格数
		gbc.gridwidth = GridBagConstraints.REMAINDER;
		// 显示区域的一列中的单元格数
		gbc.gridheight = 1;
		// 返回约束对象
		return gbc;
	}

	/**
	 * 获得指定的滚动条
	 * 
	 * @param cp
	 * @return
	 */
	private JScrollPane getScrollPane(Component cp) {
		JScrollPane scrollPane = new JScrollPane(cp,
				JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
				JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		scrollPane.revalidate();
		return scrollPane;
	}

	/**
	 * 程序初始化函数
	 */
	public void init() {

		/* 设置框架的大小 */
		faceSize = new Dimension(450, 550);

		/* 获得当前对象Pane */
		con = this.getContentPane();

		/* 初始化包布局管理器对象 */
		gbl = new GridBagLayout();

		/* 初始化面板对象 */
		leftPanel = new JPanel();
		topPanel = new JPanel();
		downPanel = new JPanel();
		rightPanel = new JPanel();

		/* 设置面板布局管理器 */
		leftPanel.setLayout(gbl);
		topPanel.setLayout(new BorderLayout());
		topPanel.setBackground(Color.red);
		downPanel.setLayout(new BorderLayout());
		downPanel.setBackground(Color.blue);
		rightPanel.setLayout(new BorderLayout());

		gbl.setConstraints(topPanel, this.getTopGridBagConstraints()); // 设置网格包布局管理器

		gbl.setConstraints(downPanel, this.getDownGridBagConstraints()); // 设置网格包布局管理器

		/* 添加到主左面板 */
		leftPanel.add(topPanel);
		leftPanel.add(downPanel);

		/* 添加到主右面板 */
		rightPanel.add(new JButton("right"), "East");

		/* 合并所有面板 */
		con.add(leftPanel, "Center");
		con.add(rightPanel, "East");

	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值