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 );  
              
              
              
     }  
     
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值