/*
??
朋友你好啊!我是尋覓,這個代碼是網上找的,有個網友最近在弄
????? 我注釋了一下,給大家看,由于剛剛接觸,寫錯之處還請指出,謝謝支持!
??? 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
小尋 閱讀(425)
評論(0) 編輯 收藏 所屬分類:
j2se/j2ee/j2me