/*
朋友你好啊!我是寻觅,这个代码是网上找的,有个网友最近在弄
我注释了一下,给大家看,由于刚刚接触,写错之处还请指出,谢谢支持!
AWT包括4个主要的类:
Component(构件)——菜单、按钮、标签、列表等构件的抽象基本类
Container(容器)——扩展Component的抽象基本类。由Container演变的类,如Panel、Applet、
Window、Dialog和Frame等
LayoutManager(布局管理器)——定义容器中构件位置和尺寸方法的接口
Graphics(图形类)——定义构件内图形操作的基本类,每个构件都有一个相关的图形对象
(具体内容大家自己查API文档)
*/
1
import
java.awt.Component;
2
import
java.awt.Container;
3
import
java.awt.GraphicsEnvironment;
4
import
java.awt.GridBagConstraints;
5
import
java.awt.GridBagLayout;
6
7
import
javax.swing.JCheckBox;
8
import
javax.swing.JComboBox;
9
import
javax.swing.JFrame;
10
import
javax.swing.JLabel;
11
import
javax.swing.JPanel;
12
import
javax.swing.JTextArea;
13
14
public
class
GirdBagLayoutTest
15
{
16
17
public
static
void
main(String[] args)
//
主函数创建
18
{
19
GirdBagLayoutFrame frame
=
new
GirdBagLayoutFrame();
//
窗口创建
20
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//
设置默认关闭操作
21
frame.setVisible(
true
);
//
设置组件可视化
22
}
23
}
24
25
class
GirdBagLayoutFrame
extends
JFrame
26
{
27
public
GirdBagLayoutFrame()
28
{
29
setTitle(
"
网格组事件
"
);
30
setSize(
300
,
150
);
//
窗口大小
31
32
Container con
=
getContentPane();
//
创建容器
33
GirdBagLayoutPanel panel
=
new
GirdBagLayoutPanel();
//
创建画板
34
con.add(panel);
//
将画板加如容器
35
}
36
}
37
38
class
GirdBagLayoutPanel
extends
JPanel
39
{
40
public
JLabel lname, lsize;
//
创建两个标签
41
42
public
JComboBox cname, csize;
//
创建两个列表框
43
44
public
JCheckBox bold, italic;
//
创建两个复选框
45
46
public
JTextArea area;
//
创建文本书写
47
48
public
GirdBagLayoutPanel()
//
重点,加入组件
49
{
50
lname
=
new
JLabel(
"
Name
"
);
//
初始化两个标签
51
lsize
=
new
JLabel(
"
Size
"
);
52
String[] fonts
=
GraphicsEnvironment.getLocalGraphicsEnvironment()
//
调用GraphicsEnvironment关于本地的一个
53
.getAvailableFontFamilyNames();
//
方法getLocalGraphicsEnvironment()接着继续调用
54
//
抽象类getAvailableFontFamilyNames
55
//
这里创建的变量fonts用于向用户展示特定字体系列名称
56
57
cname
=
new
JComboBox(fonts);
//
将font加入
58
csize
=
new
JComboBox(
new
String[]
59
{
"
8
"
,
"
12
"
,
"
14
"
,
"
16
"
,
"
18
"
,
"
20
"
,
"
24
"
,
"
26
"
,
"
36
"
}
);
//
普通列表框加入,字体大小
60
61
bold
=
new
JCheckBox(
"
Bold
"
);
//
设置两个复选旁边的标签
62
italic
=
new
JCheckBox(
"
Italic
"
);
63
area
=
new
JTextArea(
"
欢迎来到太湖
"
);
//
在文本写入部分写入内容
64
area.setLineWrap(
true
);
//
自动换行
//
在文本写入部分设置允许换行
65
//
实例化网格组布局
66
//
************************重中之重******************************************************/
67
GridBagLayout layout
=
new
GridBagLayout();
68
//
GridBagLayout在AWT里用于设置布局管理
69
setLayout(layout);
70
//
实例化网格组布局的限制类(此类协助网格组布局类完成工作)
71
GridBagConstraints constraints
=
new
GridBagConstraints();
72
//
创建加组件的容器
73
constraints.anchor
=
GridBagConstraints.EAST;
//
居右对齐
74
constraints.fill
=
GridBagConstraints.NONE;
//
不填充
75
constraints.weightx
=
0
;
//
水平方向不缩放
76
constraints.weighty
=
0
;
//
垂直方向不缩放 0代表不缩放 100代表缩放
77
//
容器设置结束,开始加组件
78
//
这里要先向大家解释这个:(constraints"约束", “控件的”x “坐标”, y "坐标" , “宽度” ,"高度")
79
//
具体实现方法看下面的addObj函数;
80
addObj(constraints,
0
,
0
,
1
,
1
,lname);
//
加入两个标签
81
addObj(constraints,
0
,
1
,
1
,
1
,lsize);
82
83
constraints.fill
=
GridBagConstraints.HORIZONTAL;
//
水平填充
84
constraints.weightx
=
100
;
//
水平缩放
85
addObj(constraints,
1
,
0
,
1
,
1
,cname);
86
addObj(constraints,
1
,
1
,
1
,
1
,csize);
87
88
constraints.weighty
=
100
;
//
垂直缩放
89
constraints.fill
=
GridBagConstraints.NONE;
//
不填充
90
constraints.anchor
=
GridBagConstraints.CENTER;
//
居中对其
91
addObj(constraints,
0
,
2
,
2
,
1
,bold);
92
addObj(constraints,
0
,
2
,
6
,
1
,italic);
93
94
constraints.fill
=
GridBagConstraints.BOTH;
//
水平垂直都填充
95
addObj(constraints,
2
,
0
,
1
,
4
,area);
96
//
***************************************************************************************/
97
}
98
99
//
方法,注意加控件的函数是没有返回值的;
100
public
void
addObj(GridBagConstraints gc,
int
x,
int
y,
int
w,
int
h,
101
Component c)
//
传递参数 Component 主键
102
{
103
gc.gridx
=
x;
104
gc.gridy
=
y;
105
gc.gridwidth
=
w;
106
gc.gridheight
=
h;
107
add(c,gc);
108
}
109
}
110
111
地震让大伙知道:居安思危,才是生存之道。
posted on 2007-02-28 15:00
小寻 阅读(423)
评论(0) 编辑 收藏 所属分类:
j2se/j2ee/j2me