一、java的圖形界面
1.swing javax.swing
jdk1.4時推出的圖形界面,跨平台性好
二、常用的組件
1.容器組件
JFrame 窗體類 最頂級的容器(默認布局為邊框布局,不能自己互相添加)
2.元素組件
JLabel 標簽類
JTextField 文本輸入框類(可以設置框內字符、輸入框長度)
JPasswordField 密碼輸入框類(框內字符會被特定字符代替)
JCheckBox 復選框類
JButton 按鈕類
容器和組件都是swing包下的類。javax.swing.JFrame
三、常用的布局
1.布局類只能用在容器中。設置布局時需用setLayout()
FlowLayout 流式布局(如同文本文檔一樣一行一行排列,排列滿換行,默認方向為從左向右,可以設置對齊方向)
四、簡單登錄界面的實現
1.新建一個xxx類(Login),在類中定義主函數。
2.在類中定義一個初始化界面的方法(initUI)
3.在初始化界面的方法中,實例化一個頂級容器(JFrame)類的對象。
4.設置JFrame對象的屬性值(標題,大小,顯示位置,關閉退出程序,禁止調整大小,可見,該步完成對一個窗體的創建)
5.實例化元素組件對象,將對象添加到窗體上
6.在主函數中實例化Login類的對象,用對象名調用初始化界面的方法。
注:setDefaultCloseOperation()括號中可選數字,3是關閉時退出程序。0是不關閉。1是隱藏,2是關閉時程序繼續工作。
setVisible(true)必須放在最后才能顯示所有組件。true為可見。
setSize()大小為像素點的大小。默認起點為左上角。
五、代碼
1.簡單的登錄界面
可以用流式布局或者邊框布局。
Java代碼
1
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
//定義一個登錄界面
public
class
showFrameqq {
// 入口主函數
public
static
void
main(String[] args) {
// 實例化showFrameqq類的對象
showFrameqq showqq =
new
showFrameqq();
//調用qq界面的方法
showqq.initGUI();
}
//定義一個qq界面的方法
public
void
initGUI(){
//實例化一個JFrame類的對象
javax.swing.JFrame jf =
new
javax.swing.JFrame();
//設置窗體的標題屬性
jf.setTitle(
"QQ登錄界面"
);
//設置窗體的大小屬性
jf.setSize(
300
,
200
);
//設置窗體的位置屬性
jf.setLocation(
450
,
200
);
//設置窗體關閉時退出程序
jf.setDefaultCloseOperation(
3
);
//設置禁止調整窗體的大小
jf.setResizable(
false
);
//實例化一個布局類的對象
java.awt.FlowLayout fl =
new
java.awt.FlowLayout();
//設置窗體的布局方式為流式布局
jf.setLayout(fl);
//實例化一個JLabel標簽類的對象
javax.swing.JLabel jlaName =
new
javax.swing.JLabel(
" "
);
//將jlaName對象添加到容器JFrame對象上
jf.add(jlaName);
//實例化一個JTextField對象
javax.swing.JTextField jteName =
new
javax.swing.JTextField(
"賬號"
,
20
);
//將jteName對象添加到容器JFrame對象上
jf.add(jteName);
//實例化一個JLabel對象
javax.swing.JLabel jlaName2 =
new
javax.swing.JLabel(
"注冊賬號"
);
//將jlaName2對象添加到容器JFrame對象上
jf.add(jlaName2);
//實例化一個JPasswordField對象
javax.swing.JPasswordField jpaName =
new
javax.swing.JPasswordField(
"請輸入密碼"
,
20
);
//將jpaName對象添加到容器JFrame對象上
jf.add(jpaName);
//實例化一個JLabel對象
javax.swing.JLabel jlaName3 =
new
javax.swing.JLabel(
"找回密碼"
);
//將jlaName3對象添加到容器JFrame對象上
jf.add(jlaName3);
//實例化一個JCheckBox對象
javax.swing.JCheckBox jchName =
new
javax.swing.JCheckBox(
"記住密碼"
);
//將jchName3對象添加到容器JFrame對象上
jf.add(jchName);
//實例化一個JCheckBox對象
javax.swing.JCheckBox jchName2 =
new
javax.swing.JCheckBox(
"自動登錄"
);
//將jchName3對象添加到容器JFrame對象上
jf.add(jchName2);
//實例化一個JCheckBox對象
javax.swing.JButton jbuName =
new
javax.swing.JButton(
" 登 錄 "
);
//將jButton對象添加到容器JFrame對象上
jf.add(jbuName);
jf.setVisible(
true
);
}
}
package
cn.wz.study0718;
//定義一個登錄界面
public
class
showFrameqq {
// 入口主函數
public
static
void
main(String[] args) {
// 實例化showFrameqq類的對象
showFrameqq showqq =
new
showFrameqq();
//調用qq界面的方法
showqq.initGUI();
}
//定義一個qq界面的方法
public
void
initGUI(){
//實例化一個JFrame類的對象
javax.swing.JFrame jf =
new
javax.swing.JFrame();
//設置窗體的標題屬性
jf.setTitle(
"QQ登錄界面"
);
//設置窗體的大小屬性
jf.setSize(
300
,
200
);
//設置窗體的位置屬性
jf.setLocation(
450
,
200
);
//設置窗體關閉時退出程序
jf.setDefaultCloseOperation(
3
);
//設置禁止調整窗體的大小
jf.setResizable(
false
);
//實例化一個布局類的對象
java.awt.FlowLayout fl =
new
java.awt.FlowLayout();
//設置窗體的布局方式為流式布局
jf.setLayout(fl);
//實例化一個JLabel標簽類的對象
javax.swing.JLabel jlaName =
new
javax.swing.JLabel(
" "
);
//將jlaName對象添加到容器JFrame對象上
jf.add(jlaName);
//實例化一個JTextField對象
javax.swing.JTextField jteName =
new
javax.swing.JTextField(
"賬號"
,
20
);
//將jteName對象添加到容器JFrame對象上
jf.add(jteName);
//實例化一個JLabel對象
javax.swing.JLabel jlaName2 =
new
javax.swing.JLabel(
"注冊賬號"
);
//將jlaName2對象添加到容器JFrame對象上
jf.add(jlaName2);
//實例化一個JPasswordField對象
javax.swing.JPasswordField jpaName =
new
javax.swing.JPasswordField(
"請輸入密碼"
,
20
);
//將jpaName對象添加到容器JFrame對象上
jf.add(jpaName);
//實例化一個JLabel對象
javax.swing.JLabel jlaName3 =
new
javax.swing.JLabel(
"找回密碼"
);
//將jlaName3對象添加到容器JFrame對象上
jf.add(jlaName3);
//實例化一個JCheckBox對象
javax.swing.JCheckBox jchName =
new
javax.swing.JCheckBox(
"記住密碼"
);
//將jchName3對象添加到容器JFrame對象上
jf.add(jchName);
//實例化一個JCheckBox對象
javax.swing.JCheckBox jchName2 =
new
javax.swing.JCheckBox(
"自動登錄"
);
//將jchName3對象添加到容器JFrame對象上
jf.add(jchName2);
//實例化一個JCheckBox對象
javax.swing.JButton jbuName =
new
javax.swing.JButton(
" 登 錄 "
);
//將jButton對象添加到容器JFrame對象上
jf.add(jbuName);
jf.setVisible(
true
);
}
}
|