java----GUI简单登录界面设计

一.问题描述

  1. 使用Swing组件做一个登录界面。要求有用户名、密码文本框及标签,两个按钮(登录和退出),并能够响应鼠标单击按钮事件,即当单击“登录”按钮时显示“登录成功”,单击“退出”按钮时退出程序。

二.解答:

package experiment;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @Author MarryAndy
 * @date 2018/12/26 11:39
 * @Version 1.0
 */
 
public class Test8_2 extends JFrame{

    JPanel jp1,jp2,jp3;
    JTextField jtf1;
    JPasswordField jpf1;
    JLabel jlb1,jlb2;
    JButton jb1,jb2;
    
    //用于接下来的判断
    int TextLength = 10;
    int PasswordLength = 10;

    public Test8_2(){
        jp1 = new JPanel();
        jp2 = new JPanel();
        jp3 = new JPanel();

        jlb1 = new JLabel("用户名(10位):");
        jlb2 = new JLabel("密码(10位):");

        jb1 = new JButton("登录");
        jb2 = new JButton("退出");

        jb1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {

                if(jtf1.getText().trim().length()==0||new String(jpf1.getPassword()).trim().length()==0){
                    //trim():用于删除头尾的空白符
                    JOptionPane.showMessageDialog(null,"用户名密码不允许为空","message",JOptionPane.ERROR_MESSAGE);

                }
                else if(jtf1.getText().trim().length() > TextLength||new String(jpf1.getPassword()).trim().length() > PasswordLength){
                    JOptionPane.showMessageDialog(null, "用户名或密码超出指定位数","message",JOptionPane.WARNING_MESSAGE);

                }
                else if(jtf1.getText().trim().equals("Andy")&&new String(jpf1.getPassword()).trim().equals("1212")){
                    JOptionPane.showMessageDialog(null, "登录成功");
                }
                else{
                    JOptionPane.showMessageDialog(null, "用户名或密码错误","message",JOptionPane.QUESTION_MESSAGE);
                }
          }
        });
        jb2.addActionListener(new ActionListener() {
        //设置监听
            @Override
            public void actionPerformed(ActionEvent e) {
                dispose();
                //关闭窗口释放屏幕资源
            }
        });

        //设计对话框及密码框的长度
        jtf1 = new JTextField(10);
        jpf1 = new JPasswordField(10);

        this.setLayout(new GridLayout(3,1));
        //采用网格布局三行一列

        //此JFrame加入三个JPanel
        this.add(jp1);
        this.add(jp2);
        this.add(jp3);

        //第一个JPanel加入JLabel和JTextField
        jp1.add(jlb1);
        jp1.add(jtf1);

        //第二个JPanel加入JLabel和JPasswordField
        jp2.add(jlb2);
        jp2.add(jpf1);

        //第三个JPanel加入两个JButton
        jp3.add(jb1);
        jp3.add(jb2);

        this.setTitle("登录界面");
        this.setSize(411,184);
        this.setLocation(500, 100);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置界面和虚拟机一起关闭
        this.setVisible(true);
        //设置界面可显示
    }

    public static void main(String[] args) {
        Test8_2 q = new Test8_2();
    }


}

三.截图

java----GUI简单登录界面设计_第1张图片
参考:
java中对话框弹出的多种方式
https://www.cnblogs.com/jiangxiulian/p/5961990.html
JavaGUI——swing组件基础(二)文本框/密码框/标签组件
https://blog.csdn.net/weixin_42247720/article/details/80480287
弹出对话框的图标选择
https://www.cnblogs.com/guohaoyu110/p/6440333.html

你可能感兴趣的:(Java)