Java用户登陆这块,主要还是学到了新的类:

1,边界布局:BorderLayout。他主要分为五个布局,是JFrame(顶层容器),JDialog(创建对话框窗口的类)的默认布局方式。其最多容量为5个组件,超出5个得用其他的。设置方式为:BorderLayout.NORTH;BorderLayout.SOUTH;BorderLayout.CENTER;Borderlayout.CENTER;BorderLayout.LEFT;BorderLayout.RIGHT。

2,流式布局:FlowLayout。布局方式为从左到右,从上到下。是JPanel(轻量级容器)的默认面板布局。

3,网格布局:GridLayout。布局方式为行和列组成的网络。布局方法:setLayout(new GridLayout(3,2,3,3));其中强两位数字表示三行两列,后两位表示行与行的间距为3,列与列的间距为3.

接着,就接触到JPanel面板。JPanel是非顶层容器,所以,一个界面只能由一个JFrame,但是可以有多个JPanel组件。其默认布局方式为流式布局。在JPanel这块,学到了用户登录界面的设计。从而接触到另外三个组件:文本框组件:JTextField;密码框组件:JPasswordField;标签组件:JLabel;复选框组件:JCheckBox;单选框组件:JRadioButton;按钮组件JButton。

根据上面的组件和布局方式,我试着做了如下效果的一些代码:

1,用户登陆界面:

具体代码如下:

 1 import javax.swing.*;
 2 
 3 import java.awt.*;   //导入必要的包
 4 
 5 public class denglu extends JFrame{
 6     JTextField jTextField ;  //定义文本框组件
 7     JPasswordField jPasswordField;    //定义密码框组件
 8     JLabel jLabel1,jLabel2;
 9     JPanel jp1,jp2,jp3;
10     JButton jb1,jb2;     //创建按钮
11     public denglu(){
12         jTextField = new JTextField(12);
13         jPasswordField = new JPasswordField(13);
14         jLabel1 = new JLabel("用户名");
15         jLabel2 = new JLabel("密码");
16         jb1 = new JButton("确认");
17         jb2 = new JButton("取消");
18         jp1 = new JPanel();
19         jp2 = new JPanel();
20         jp3 = new JPanel();
21         
22         //设置布局
23         this.setLayout(new GridLayout(3,1));
24         
25         jp1.add(jLabel1); 
26         jp1.add(jTextField);//第一块面板添加用户名和文本框 
27         
28         jp2.add(jLabel2);
29         jp2.add(jPasswordField);//第二块面板添加密码和密码输入框
30         
31         jp3.add(jb1);
32         jp3.add(jb2); //第三块面板添加确认和取消
33         
34         //        jp3.setLayout(new FlowLayout());    //因为JPanel默认布局方式为FlowLayout,所以可以注销这段代码.
35         this.add(jp1);
36         this.add(jp2);
37         this.add(jp3);  //将三块面板添加到登陆框上面
38         //设置显示
39         this.setSize(300, 200);
40         //this.pack();
41         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
42         this.setVisible(true);
43         this.setTitle("登陆");
44          
45     }
46     public static void main(String[] args){
47         new denglu();
48     }
49 }

2,根据复选框组件等其他组件,又写了用户调查界面:

具体代码:

 1 import javax.swing.ButtonGroup;
 2 import javax.swing.JCheckBox;
 3 import javax.swing.JFrame;
 4 import javax.swing.JLabel;
 5 import javax.swing.JPanel;
 6 import javax.swing.JRadioButton;
 7 
 8 import java.awt.*;
 9 
10 public class diaocha extends JFrame{
11     JCheckBox jcb1,jcb2,jcb3;
12     JRadioButton jrb1,jrb2;
13     JLabel jLabel1,jLabel2;
14     JPanel jp1,jp2;
15     public diaocha(){
16         jcb1 = new JCheckBox("华商报");
17         jcb2 = new JCheckBox("三秦都市报");
18         jcb3 = new JCheckBox("西安晚报");
19         jrb1 = new JRadioButton("男");
20         jrb2 = new JRadioButton("女");
21         jLabel1 = new JLabel("您最常读的报纸");
22         jLabel2 = new JLabel("您的性别");
23         jp1 = new JPanel();
24         jp2 = new JPanel();
25         //设置布局
26         this.setLayout(new GridLayout(2, 1));
27         //添加组件
28         jp1.add(jLabel1);
29         jp1.add(jcb1);
30         jp1.add(jcb2);
31         jp1.add(jcb3);
32         jp2.add(jLabel2);
33         //现在这样的话,最后还是会对性别进行全部选择的。所以添加按钮对象,对同一组单选按钮惊醒分组
34         ButtonGroup bGroup = new ButtonGroup();
35         bGroup.add(jrb1);
36         bGroup.add(jrb2);
37         jp2.add(jrb1);
38         jp2.add(jrb2);
39         this.add(jp1);
40         this.add(jp2);
41         
42         //设置展示面板
43         this.setVisible(true);
44         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
45         this.setSize(200, 200);
46     }
47     public static void main(String[] args){
48         new diaocha();
49     }
50 }

我有一个微信公众号,经常会分享一些Java技术相关的干货;如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。

参考:

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐