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
}
}