java Swing 不一样的 登录界面+窗口抖动

java Swing 登录界面,当输入为空时自带类QQ的窗口抖动效果。超越普通的javaSwing,值的进来观赏。。。
什么都不说了,先上java程序运行的截图

这里写图片描述

程序运行后 你就会发现输入框里的东西为空时,就会出现类qq的窗口抖动效果。

接下来老夫贴出代码:

package com.today.ui;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;

import com.xy.today.mycontrols.MyPanel;
import com.xy.today.sql.Employee;

/**
 * 需求:实现today剧院管理系统的登陆界面
 * 
 * today软件公司程序猿李文朋
 */

public class Login {

    /**
     * 记住密码
     */
    private JCheckBox jCheckBox_jizhu;
    /**
     * 忘记密码
     */
    private JLabel jLabel_wangji;
    private MyPanel jPanel_login;
    /**
     * 登陆的图片
     */
    private ImageIcon imageIcon_login_bg = new ImageIcon(
            Login.class.getResource("/com/today/images/denglu.gif"));
    private ImageIcon imageIcon_login_hudie = new ImageIcon(
            Login.class.getResource("/com/today/images/hudie.gif"));
    private ImageIcon imageIcon_button = new ImageIcon(
            Login.class.getResource("/com/today/images/button.png"));
    /**
     * 关闭的图片
     */
    private ImageIcon imageIcon_guanbi = new ImageIcon(
            Login.class.getResource("/com/today/images/guanbi.png"));
    /**
     * 最小的图片
     */
    private ImageIcon imageIcon_zuixiaohua = new ImageIcon(
            Login.class.getResource("/com/today/images/zuixiaohua.png"));
    /**
     * 登陆窗体
     */
    private JFrame jFrame_login = new JFrame();

    /**
     * 登陆button
     */
    private JButton jButton_denglu;
    /**
     * 注册button
     */
    private JButton jbButton_zhuce;
    /**
     * 账号输入框
     */
    private JTextField jTextField_zhanghao;
    /**
     * 密码输入框
     */
    private JPasswordField jPasswordField_mima;

    private JButton jButton_guanbi;
    private JButton jButton_zuixiaohua;

    public static void main(String args[]) {
        new Login();
    }

    public Login() {
        jFrame_login.setSize(900, 700);

        // 第一层嵌套,login的外层
        jPanel_login = login_panel();
        jPanel_login.setOpaque(false);

        jFrame_login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame_login.setUndecorated(true);
        // AWTUtilities.setWindowOpaque(jFrame_login, false);
        jFrame_login.setContentPane(jPanel_login);
        // 设置点击事件
        Dianji();
        jFrame_login.setBackground(Color.black);
        jFrame_login.setLocationRelativeTo(null); // 设置窗体居中
        jFrame_login.setVisible(true);
    }

    /**
     * 定义 log的类容
     * 
     * @return
     */
    public MyPanel login_panel() {

        imageIcon_login_hudie.setImage(imageIcon_login_hudie.getImage()
                .getScaledInstance(800, 700, Image.SCALE_DEFAULT));
        MyPanel jPanel = new MyPanel(imageIcon_login_hudie.getImage(), 800, 700);

        Insets insets = new Insets(0, 0, 0, 0);
        jPanel.setBorder(new EmptyBorder(80, 100, 150, 100));
        // 设置关闭 最小化的布局
        GridBagLayout gridBagLayout = new GridBagLayout();
        jPanel.setLayout(gridBagLayout);
        GridBagConstraints gridBagConstraints = new GridBagConstraints();
        gridBagConstraints.insets = insets;

        JPanel jPanel_wei = gaunbi();
        gridBagConstraints.fill = GridBagConstraints.BOTH;
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.weightx = 200;
        gridBagConstraints.weighty = 10;
        jPanel.add(jPanel_wei, gridBagConstraints);

        MyPanel jPanel_nei = denglu();
        gridBagConstraints.fill = GridBagConstraints.BOTH;
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.weightx = 200;
        gridBagConstraints.weighty = 200;
        jPanel.add(jPanel_nei, gridBagConstraints);
        return jPanel;
    }

    private MyPanel denglu() {
        imageIcon_login_bg.setImage(imageIcon_login_bg.getImage()
                .getScaledInstance(600, 500, Image.SCALE_DEFAULT));
        MyPanel jPane_denlu = new MyPanel(imageIcon_login_bg.getImage(), 600,
                600);
        jPane_denlu.setLayout(new GridLayout(6, 1));

        /**
         * 空jpanel占用地方
         */
        JPanel jPanel0 = new JPanel();
        jPane_denlu.add(jPanel0);
        jPanel0.setOpaque(false);

        /**
         * jpanel1设置账号
         */
        JPanel jPanel1 = new JPanel();
        jPanel1.setLayout(new FlowLayout());
        JLabel jLabel_zhanghao = new JLabel("账号", JLabel.RIGHT);
        jLabel_zhanghao.setFont(new Font("宋体", Font.BOLD, 20));
        jTextField_zhanghao = new JTextField(15);
        jPanel1.add(jLabel_zhanghao);
        jPanel1.setOpaque(false);
        jPanel1.add(jTextField_zhanghao);
        jPane_denlu.add(jPanel1);

        /**
         * jpanel设置密码
         */
        JPanel jPanel2 = new JPanel();
        jPanel2.setLayout(new FlowLayout());
        JLabel jLabel_mima = new JLabel("密码", JLabel.RIGHT);
        jLabel_mima.setFont(new Font("宋体", Font.BOLD, 20));
        jPanel2.add(jLabel_mima);
        jPasswordField_mima = new JPasswordField(15);
        jPanel2.add(jPasswordField_mima);
        jPanel2.setOpaque(false);
        jPane_denlu.add(jPanel2);

        /**
         * jpanel设置忘记密码 和记住密码
         */
        JPanel jPanel3 = new JPanel();
        jPanel3.setLayout(new FlowLayout(FlowLayout.CENTER));
        jCheckBox_jizhu = new JCheckBox("记住密码");
        jCheckBox_jizhu.setOpaque(false);
        jPanel3.add(jCheckBox_jizhu);
        jLabel_wangji = new JLabel("忘记密码");
        jLabel_wangji.setFont(new Font("宋体", Font.BOLD, 15));
        jPanel3.add(jLabel_wangji);
        jPane_denlu.add(jPanel3);
        jPanel3.setOpaque(false);

        /**
         * 登陆 注册button
         */
        imageIcon_button.setImage(imageIcon_button.getImage()
                .getScaledInstance(30, 30, Image.SCALE_DEFAULT));
        JPanel jPanel4 = new JPanel();
        jButton_denglu = new JButton("登录", imageIcon_button);
        jButton_denglu.setContentAreaFilled(false);
        jPanel4.add(jButton_denglu);
        jbButton_zhuce = new JButton("注册", imageIcon_button);
        jbButton_zhuce.setContentAreaFilled(false);
        jPanel4.add(jbButton_zhuce);
        jPanel4.setOpaque(false);
        jPane_denlu.add(jPanel4);

        jPane_denlu.setOpaque(false);
        return jPane_denlu;
    }

    /**
     * 登陆 注册 事件点击 处理
     */
    private void Dianji() {
        /**
         * 登录的事件点击
         */
        jButton_denglu.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("登录点击成功");
                String string_zhanghao = jTextField_zhanghao.getText();
                String string_mima = jPasswordField_mima.getText();
                if (string_mima.equals("") || string_zhanghao.equals("")) {
                    int num = 10;// 抖动次数
                    Point point = jFrame_login.getLocation();// 窗体位置
                    for (int i = 10; i > 0; i--) {
                        // 设置 真的
                        for (int j = num; j > 0; j--) {
                            point.y += i;
                            jFrame_login.setLocation(point);
                            point.x += i;
                            jFrame_login.setLocation(point);
                            point.y -= i;
                            jFrame_login.setLocation(point);
                            point.x -= i;
                            jFrame_login.setLocation(point);

                        }
                    }
                    /**
                     * 系统警告信息
                     */
                    JOptionPane.showMessageDialog(
                            jFrame_login.getContentPane(), "密码或账号不能为空!",
                            "today登录系统信息", JOptionPane.WARNING_MESSAGE);
                    System.out.println("密码或账号不能为空");
                } else {
                    Employee employee = new Employee();
                    if (employee.loginin(string_zhanghao, string_mima)) {
                        System.out.println("登录成功");
                        String zhiwei = employee
                                .employeeZhiWei(string_zhanghao);
                        AdministratorGeRenXinXi.string_Gonghao = string_zhanghao;
                        ConductorGeRenXinXi.string_Gonghao = string_zhanghao;
                        /**
                         * 通过登录 账号密码 然后从数据库中 获取职位是 管理员还是 售票员 然后 进行 界面的 选择登录
                         */
                        jFrame_login.dispose();
                        new LoginJProgressBar();
                        if (zhiwei.equals("售票员")) {
                            LoginJProgressBar.tag = 1;
                            // new Conductor();
                        } else {
                            // new Administrator();
                            LoginJProgressBar.tag = 2;
                        }

                    } else {
                        int num = 10;// 抖动次数
                        Point point = jFrame_login.getLocation();// 窗体位置
                        for (int i = 10; i > 0; i--) {
                            // 设置 真的
                            for (int j = num; j > 0; j--) {
                                point.y += i;
                                jFrame_login.setLocation(point);
                                point.x += i;
                                jFrame_login.setLocation(point);
                                point.y -= i;
                                jFrame_login.setLocation(point);
                                point.x -= i;
                                jFrame_login.setLocation(point);

                            }
                        }
                        /**
                         * 系统错误提示信息
                         */
                        JOptionPane.showMessageDialog(
                                jFrame_login.getContentPane(), "密码或账号错误,登录失败!",
                                "today登录系统信息", JOptionPane.ERROR_MESSAGE);
                        System.out.println("登录失败");

                    }
                }
            }
        });
        /**
         * 注册的事件点击处理
         */
        jbButton_zhuce.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                jFrame_login.dispose();
                new Registered();
                System.out.println("注册点击成功");
            }
        });

        /**
         * 忘记密码的事件点击处理
         */
        jLabel_wangji.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                System.out.println("忘记密码点击成功");
            }
        });
    }

    /**
     * 关闭的Jpanel
     * 
     * @return
     */
    private JPanel gaunbi() {
        JPanel jPanel_waibu = new JPanel();

        Insets insets = new Insets(2, 2, 2, 2);
        // 设置关闭 最小化的布局
        GridBagLayout gridBagLayout = new GridBagLayout();
        jPanel_waibu.setLayout(gridBagLayout);
        GridBagConstraints gridBagConstraints = new GridBagConstraints();
        gridBagConstraints.insets = insets;

        ImageIcon imageIcon_denglu = new ImageIcon(
                Login.class.getResource("/com/today/images/denglu.png"));
        imageIcon_denglu.setImage(imageIcon_denglu.getImage()
                .getScaledInstance(550, 120, Image.SCALE_DEFAULT));
        JLabel jLabel = new JLabel(imageIcon_denglu);
        gridBagConstraints.fill = GridBagConstraints.BOTH;
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.weightx = 1;
        gridBagConstraints.weighty = 6;
        jPanel_waibu.add(jLabel, gridBagConstraints);

        imageIcon_guanbi.setImage(imageIcon_guanbi.getImage()
                .getScaledInstance(40, 40, Image.SCALE_DEFAULT));
        jButton_guanbi = new JButton(imageIcon_guanbi);
        jButton_guanbi.setContentAreaFilled(false);
        jButton_guanbi.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("login的关闭button点击成功");
                jFrame_login.dispose();
            }
        });
        imageIcon_zuixiaohua.setImage(imageIcon_zuixiaohua.getImage()
                .getScaledInstance(40, 40, Image.SCALE_DEFAULT));
        jButton_zuixiaohua = new JButton(imageIcon_zuixiaohua);
        jButton_zuixiaohua.setContentAreaFilled(false);
        jButton_zuixiaohua.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("login的最小化button点击成功");
                jFrame_login.setExtendedState(JFrame.ICONIFIED);
            }
        });

        jPanel_waibu.add(jButton_guanbi);
        jPanel_waibu.add(jButton_zuixiaohua);
        jPanel_waibu.setOpaque(false);
        return jPanel_waibu;
    }

}

代码里面有详细的注释说明,下面接着给出jui的图片连接:
登录的gif图这里写图片描述
程序外围的gif图这里写图片描述
那两个 关闭和最小化的按钮就不向出贴了,你们自己随便找几个图片就可以了,本代码是我提取java剧院管理系统的一个登录界面,后序会将整个管理系统的代码贴出来。
老夫不一样的java的Swing开发,哈哈

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值