java---Swing界面开发总结

一、java的图形界面

1.awt java.awt

jdk1.4之前推出的图形界面,用c/c++编写,跨平台性不好

2.swing javax.swing

jdk1.4时推出的图形界面,跨平台性好

二、常用的组件

1.容器组件

JFrame 窗体类 最顶级的容器(默认布局为边框布局,不能自己互相添加)

JPanel 面板类 最灵活的容器(可以自己互相添加)

2.元素组件

JLabel 标签类

JTextField 文本输入框类(可以设置框内字符、输入框长度)

JPasswordField 密码输入框类(框内字符会被特定字符代替)

JCheckBox 复选框类

JComboBox 下拉框类

JButton 按钮类

容器和组件都是swing包下的类。javax.swing.JFrame

三、常用的布局

1.布局类只能用在容器中。设置布局时需用setLayout()

BorderLayout 边框布局(将窗体分为上下左右中五个区域,调用时分别.NORTH,.SOUTH,.WEST,.EAST,.CENTER,若未标明表示CENTER,未添加布局时默认为边框布局加在中央)

FlowLayout 流式布局(如同文本文档一样一行一行排列,排列满换行,默认方向为从左向右,可以设置对齐方向)

GridLayout 网格布局(可以设置几列几行,间距)

这三种都是位于awt包下的类。java.awt.***Layout

四、简单登录界面的实现

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

}

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

}

2.简单的计算器界面

分析:使用网格布局。

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
package cn.wz.study0718;
//定义一个计算器界面
public class showCalculaterFrame {

//入口主函数 
public static void main(String[] args) { 
    //实例化一个showCalculaterFrame类的对象 
    showCalculaterFrame showCal = new showCalculaterFrame(); 
    //调用计算器界面的方法 
    showCal.initGUI(); 
  
} 
//定义一个计算器界面的方法 
public void initGUI(){ 
    //实例化一个JFrame类的对象 
    javax.swing.JFrame jf = new javax.swing.JFrame(); 
    //设置窗体的标题属性 
    jf.setTitle("计算器"); 
    //设置窗体的大小属性 
    jf.setSize(250,350); 
    //设置窗体的位置属性 
    jf.setLocation(400,200); 
    //设置窗体关闭时退出程序 
    jf.setDefaultCloseOperation(3); 
    //设置禁止调整窗体的大小 
    jf.setResizable(false); 
           
    //实例化一个JTextField文本框类的对象 
    //javax.swing.JTextField jteName = new javax.swing.JTextField(20); 
    //将jteName添加到容器JFrame上 
    //jf.add(jteName); 
    //实例化一个布局类对象 
    java.awt.GridLayout gr = new java.awt.GridLayout(5,4); 
    //设置窗体的布局方式为网格布局 
    jf.setLayout(gr); 
    //实例化十九个个JButton对象、一个JTextField对象 
    javax.swing.JButton jb1 = new javax.swing.JButton("1"); 
    javax.swing.JButton jb2 = new javax.swing.JButton("2"); 
    javax.swing.JButton jb3 = new javax.swing.JButton("3"); 
    javax.swing.JButton jb4 = new javax.swing.JButton("4"); 
    javax.swing.JButton jb5 = new javax.swing.JButton("5"); 
    javax.swing.JButton jb6 = new javax.swing.JButton("6"); 
    javax.swing.JButton jb7 = new javax.swing.JButton("7"); 
    javax.swing.JButton jb8 = new javax.swing.JButton("8"); 
    javax.swing.JButton jb9 = new javax.swing.JButton("9"); 
    javax.swing.JButton jb0 = new javax.swing.JButton("0"); 
    javax.swing.JButton jba = new javax.swing.JButton("+"); 
    javax.swing.JButton jbb = new javax.swing.JButton("-"); 
    javax.swing.JButton jbc = new javax.swing.JButton("*"); 
    javax.swing.JButton jbd = new javax.swing.JButton("/"); 
    javax.swing.JButton jbe = new javax.swing.JButton("="); 
    javax.swing.JButton jbf = new javax.swing.JButton("AC"); 
    javax.swing.JButton jbg = new javax.swing.JButton("sqrt"); 
    javax.swing.JButton jbh = new javax.swing.JButton("1/x"); 
    javax.swing.JButton jbi = new javax.swing.JButton("."); 
    javax.swing.JTextField jte = new javax.swing.JTextField(); 
    //将JButton对象、JTextField对象添加到容器JFrame上 
    jf.add(jte); 
    jf.add(jbf); 
    jf.add(jbg); 
    jf.add(jbh); 
    jf.add(jb1); 
    jf.add(jb2); 
    jf.add(jb3); 
    jf.add(jba); 
    jf.add(jb4); 
    jf.add(jb5); 
    jf.add(jb6); 
    jf.add(jbb); 
    jf.add(jb7); 
    jf.add(jb8); 
    jf.add(jb9); 
    jf.add(jbc); 
    jf.add(jb0); 
    jf.add(jbi); 
    jf.add(jbe); 
    jf.add(jbd); 
           
    //设置窗体是否可见 
    jf.setVisible(true); 
           
           
           
} 

}
  转自:http://www.bdqn.cn/news/201307/10424.shtml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值