/*
?? 朋友你好?。∥沂菍ひ挘@個(gè)代碼是網(wǎng)上找的,有個(gè)網(wǎng)友最近在弄
????? 我注釋了一下,給大家看,由于剛剛接觸,寫(xiě)錯(cuò)之處還請(qǐng)指出,謝謝支持!
??? AWT包括4個(gè)主要的類:
Component(構(gòu)件)——菜單、按鈕、標(biāo)簽、列表等構(gòu)件的抽象基本類
Container(容器)——擴(kuò)展Component的抽象基本類。由Container演變的類,如Panel、Applet、
??????? Window、Dialog和Frame等
LayoutManager(布局管理器)——定義容器中構(gòu)件位置和尺寸方法的接口
Graphics(圖形類)——定義構(gòu)件內(nèi)圖形操作的基本類,每個(gè)構(gòu)件都有一個(gè)相關(guān)的圖形對(duì)象
??? (具體內(nèi)容大家自己查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)?????????????????????????
//
主函數(shù)創(chuàng)建
?18
????
{
?19
????????GirdBagLayoutFrame?frame?
=
?
new
?GirdBagLayoutFrame();???????
//
窗口創(chuàng)建
?20
????????frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);??????
//
設(shè)置默認(rèn)關(guān)閉操作??
?21
????????frame.setVisible(
true
);????????????????????????????????????
//
設(shè)置組件可視化
?22
????}
?23
}
?24
?25
class
?GirdBagLayoutFrame?
extends
?JFrame
?26
{
?27
????
public
?GirdBagLayoutFrame()
?28
????
{
?29
????????setTitle(
"
網(wǎng)格組事件
"
);??????????????????????
?30
????????setSize(
300
,
150
);???????????????????????????????????
//
窗口大小
?31
?32
????????Container?con?
=
?getContentPane();????????????????????
//
創(chuàng)建容器
?33
????????GirdBagLayoutPanel?panel?
=
?
new
?GirdBagLayoutPanel();????
//
創(chuàng)建畫(huà)板
?34
????????con.add(panel);?????????????????????????????????????????
//
將畫(huà)板加如容器
?35
????}
?36
}
?37
?38
class
?GirdBagLayoutPanel?
extends
?JPanel
?39
{
?40
????
public
?JLabel?lname,?lsize;???????????????????????????????
//
創(chuàng)建兩個(gè)標(biāo)簽
?41
?42
????
public
?JComboBox?cname,?csize;???????????????????????????
//
創(chuàng)建兩個(gè)列表框
?43
?44
????
public
?JCheckBox?bold,?italic;???????????????????????????
//
創(chuàng)建兩個(gè)復(fù)選框
?45
?46
????
public
?JTextArea?area;????????????????????????????????????
//
創(chuàng)建文本書(shū)寫(xiě)
?47
?48
????
public
?GirdBagLayoutPanel()???????????????????????????????
//
重點(diǎn),加入組件
?49
????
{
?50
????????lname?
=
?
new
?JLabel(
"
Name
"
);????????????????????????????
//
初始化兩個(gè)標(biāo)簽
?51
????????lsize?
=
?
new
?JLabel(
"
Size
"
);
?52
????????String[]?fonts?
=
?GraphicsEnvironment.getLocalGraphicsEnvironment()
//
調(diào)用GraphicsEnvironment關(guān)于本地的一個(gè)
?53
????????????????.getAvailableFontFamilyNames();???????????????
//
方法getLocalGraphicsEnvironment()接著繼續(xù)調(diào)用
?54
??????????????????????????????????????????????????????????????
//
抽象類getAvailableFontFamilyNames
?55
??????????????????????????????????????????????????????????????
//
這里創(chuàng)建的變量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
"
);??????????????????????????
//
設(shè)置兩個(gè)復(fù)選旁邊的標(biāo)簽
?62
????????italic?
=
?
new
?JCheckBox(
"
Italic
"
);
?63
????????area?
=
?
new
?JTextArea(
"
歡迎來(lái)到太湖
"
);?????????????????
//
在文本寫(xiě)入部分寫(xiě)入內(nèi)容
?64
????????area.setLineWrap(
true
);
//
自動(dòng)換行??????????????????????
//
在文本寫(xiě)入部分設(shè)置允許換行
?65
????????
//
實(shí)例化網(wǎng)格組布局
?66
?
//
************************重中之重******************************************************/???
?67
????????GridBagLayout?layout?
=
?
new
?GridBagLayout();
?68
????????
//
GridBagLayout在AWT里用于設(shè)置布局管理
?69
????????setLayout(layout);
?70
????????
//
實(shí)例化網(wǎng)格組布局的限制類(此類協(xié)助網(wǎng)格組布局類完成工作)
?71
????????GridBagConstraints?constraints?
=
?
new
?GridBagConstraints();
?72
????????
//
創(chuàng)建加組件的容器
?73
????????constraints.anchor?
=
?GridBagConstraints.EAST;
//
居右對(duì)齊
?74
????????constraints.fill?
=
?GridBagConstraints.NONE;
//
不填充
?75
????????constraints.weightx?
=
?
0
;?
//
水平方向不縮放
?76
????????constraints.weighty?
=
?
0
;?
//
垂直方向不縮放??0代表不縮放?100代表縮放
?77
????????
//
容器設(shè)置結(jié)束,開(kāi)始加組件
?78
????????
//
這里要先向大家解釋這個(gè):(constraints"約束",?“控件的”x?“坐標(biāo)”,?y?"坐標(biāo)"?,?“寬度”?,"高度")
?79
????????
//
具體實(shí)現(xiàn)方法看下面的addObj函數(shù);
?80
????????addObj(constraints,
0
,
0
,
1
,
1
,lname);???
//
加入兩個(gè)標(biāo)簽
?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;
//
居中對(duì)其
?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
????
//
方法,注意加控件的函數(shù)是沒(méi)有返回值的;
100
????
public
?
void
?addObj(GridBagConstraints?gc,
int
?x,
int
?y,
int
?w,
int
?h,
101
???????????????????????Component?c)
//
傳遞參數(shù)?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

??2

??3

??4

??5

??6

??7

??8

??9

?10

?11

?12

?13

?14

?15



?16

?17

?18



?19

?20

?21

?22

?23

?24

?25

?26



?27

?28



?29

?30

?31

?32

?33

?34

?35

?36

?37

?38

?39



?40

?41

?42

?43

?44

?45

?46

?47

?48

?49



?50

?51

?52

?53

?54

?55

?56

?57

?58

?59



?60

?61

?62

?63

?64

?65

?66

?67

?68

?69

?70

?71

?72

?73

?74

?75

?76

?77

?78

?79

?80

?81

?82

?83

?84

?85

?86

?87

?88

?89

?90

?91

?92

?93

?94

?95

?96

?97

?98

?99

100

101

102



103

104

105

106

107

108

109

110

111

地震讓大伙知道:居安思危,才是生存之道。
