刚接触Java没多久,可能讲的比较浅显,若有不妥之处还望指正~
······创建一个登陆界面类
类中定义显示界面的函数,类型public void 名字 (我就叫它ShowUI吧);
一个界面由许多组件组成:包含显示、装饰的图片,账号框,密码框,复选框,按钮等等,这些组件不可能是集合显示的,所以需要一个载体--也称作顶级容器或者窗体,Java中这种类型叫做JFrame(在文件javax.swing.JFrame中,这个其实不用记,如果使用eclipse,可直接将鼠标放在JFrame处,点击就可以自动在首部增加import某文件),这里我就用加上文件名的表示方法:
1 javax.swing.JFrame login_frame = new JFrame(); //创建一个JFrame 对象 2 //接下来就可以设置大小,位置等 利用.set就可以选择到相应的选项 3 login_frame.setSize(650,1050);//长 宽 4 login_frame.setLocationRelativeTo(null);//设置位置,与任何无关,即居中 5 //为了使用户在点击关闭按钮,要加上这句。不然按下关闭按钮时,程序不会退出 6 login_frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); //关闭退出
在往容器里增加组件时,还需要注意我们要为插入的组件设置一个顺序。本人目前所学的使用FlawLayout类型(流体布局),即按一行行顺序插入组件,当容器的某行塞不下时,自动换到下一行。
1 //布局对象 2 FlowLayout layout = new FlowLayout(); 3 //设置窗体的布局为流式布局 4 login_frame.setLayout(layout);
接下来,就可以根据自己的设想、需要往容器(窗体)中增加组件了
ImageIcon: 图片类型
JLabel :标签类型
JTextField: 文本输入类型
JPasswordField:密码输入对象(这样子密码的输入就不可见了)
JCheckBox:复选框类型
Dimension:用于设置尺寸的一个类型,使用时创建一个Dimension对象aa,同时设置大小。之后在要设置大小的对象AA后+.setPreferredSize(aa);那么aa的大小尺寸就规范了AA的尺寸。
所有的这些组件都是通过 窗体.add(组件)来添加。
1 //开始按顺序在界面上添加元素 2 3 //图片对象 4 ImageIcon Head = new ImageIcon("C:\\Users\\贝壳\\Desktop\\babystone\\babystone2.jpg"); 5 //要创建了图片对象要利用标签来显示在在窗体 6 JLabel icon_label = new JLabel(Head); 7 //将图片标签添加到窗体(顶级容器) 8 login_frame.add(icon_label); 9 10 //添加一个注册帐号标签 11 JLabel register = new JLabel("登陆帐号"); 12 login_frame.add(register); 13 //输入框对象 账号 14 JTextField input_name = new JTextField(); 15 //设置尺寸的一个对象 16 Dimension input_size = new Dimension(550,50); 17 input_name.setPreferredSize(input_size);//赋予了大小 18 login_frame.add(input_name); //添加输入账号 19 20 //添加一个密码标签 21 JLabel key = new JLabel("登陆密码"); 22 login_frame.add(key); 23 //设置输入密码对象 24 JPasswordField input_key = new JPasswordField(); 25 input_key.setPreferredSize(input_size); 26 login_frame.add(input_key); 27 28 //JLabel your_choice = new JLabel(); 29 //login_frame.add(your_choice); 30 //复选框 31 JCheckBox choice = new JCheckBox("记住我的名字~"); 32 JCheckBox choicee = new JCheckBox("记住我的密码~"); 33 choicee.setPreferredSize(input_size); 34 choice.setPreferredSize(input_size); 35 login_frame.add(choice); 36 login_frame.add(choicee); 37 38 39 40 //登陆按钮 41 JButton button =new JButton("登陆"); 42 Dimension button_size = new Dimension(500,100); 43 button.setPreferredSize(button_size); 44 login_frame.add(button);
还有个监听器类型(用于判断输入的信息是否正确),在这单独说说,这里我们就要用到Java本身的接口自己写一个类:ActionListener(动作监听器),KeyListener(键盘监听器),MouseListener(鼠标监听器)。由于我们只是在用户点登陆按钮时要执行检查信息输入是否正确,所以关注的是按钮按下的动作,应使用ActionListener。
使用接口时要加上关键字implements + 接口名
重写接口函数,emm这里函数类型和名字最好直接复制源码(按住Ctrl再点击函数名就可以看到源码),由于我们要检查的是账号和密码,所以在函数中分别创建两个String变量分别获取两个文本框(这里也要两个JTextField对象来获取用户输入的信息)的信息,然后用if else条件语句来判断后续的操作。
1 import java.awt.event.ActionEvent; 2 import java.awt.event.ActionListener; 3 import java.io.IOException; 4 5 import javax.swing.JTextField; 6 7 public class LoginListener implements ActionListener { 8 JTextField name_get; 9 JTextField pass_get; 10 public void actionPerformed(ActionEvent e){ 11 String name = name_get.getText(); 12 String key = pass_get.getText(); 13 //成功匹配使用equal操作 14 if(name.equals("Bankarian") && key.equals("123456")){ 15 System.out.println("SUCCESS !"); 16 //这个是跳转到网页的函数 17 Runtime run = Runtime.getRuntime(); 18 try { 19 run.exec("explorer https://www.cnblogs.com/GorgeousBankarian/"); 20 } 21 catch (IOException exec) { 22 // TODO Auto-generated catch block 23 exec.printStackTrace(); 24 } 25 } 26 //匹配不成功 27 else{ 28 if(name.equals("Bankarian")){ 29 System.out.println("PASSWORD ERRO"); 30 31 } 32 else{ 33 System.out.println("NAME ERRO"); 34 } 35 } 36 } 37 38 }
哈哈,最后一步,也是最重要的一步:设置窗体可见,不然是不会显示的哦~(本人就曾傻傻地卡在这里~)
login_frame.setVisible(true);
接着主函数走起,FINISHED!
原文地址:https://www.cnblogs.com/GorgeousBankarian/p/10562024.html