2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > GUI图形用户接口编写QQ登录界面

GUI图形用户接口编写QQ登录界面

时间:2021-07-09 08:02:10

相关推荐

GUI图形用户接口编写QQ登录界面

GUI图形用户接口编写QQ登录界面

这个是我们的实训作业,我通过参考课本编写的QQ登录界面。Swing组件的整合使用——QQ登录界面。

QQ登录界面,因此可以使用JFrame容器实现。界面布局可分为5个区域,顶部、中部、底部、左侧、右侧,可以使用BorderLayout来管理布局,每个面板使用JPanel面板组件填充。当用户名和密码输入正确,会跳转登录成功界面。否则会弹出错误提示框。为界面登录按钮和关闭窗口注册监听器,进行事件监听。定义程序启动入口,用于启动Swing程序。

素材我会发到公众号:回复0028“小白数据共享”

先附上效果图

这里主要分为三个部分:

创建QQ登陆界面,并添加布局管理器创建区域面板类,划分容器区域创建并注册监听器编写程序入口

1.创建QQ登陆界面,并添加布局管理器

QQ.login.java

import javax.swing.*;import java.awt.*;public class QQ.login {//1、初始化一个JFrame窗口private static JFrame jf=new JFrame();public static void initLogin(){// 设置窗口尺寸jf.setSize(426, 300);// 设置窗口在屏幕显示位置jf.setLocation(497, 242);// 设置JFrame窗口边框不显示jf.setUndecorated(true);// 禁止改变窗口大小jf.setResizable(false);// 2、根据QQ登录界面效果,进行布局分配BorderLayout border_layout=new BorderLayout();jf.setLayout(border_layout);// 2.1、创建并加入顶部面板JPanel panepagestart=CreatePanel.createPangeStart(jf);jf.add(panepagestart,BorderLayout.PAGE_START);// 2.2、创建并加入左侧面板JPanel paneleft=CreatePanel.createleft();jf.add(paneleft,BorderLayout.LINE_START);// 2.3、创建并加入中部面板JPanel panecenter=CreatePanel.createcenter(jf);jf.add(panecenter,BorderLayout.CENTER);// 2.4、创建并加入右侧面板JPanel paneright =CreatePanel.createright();jf.add(paneright,BorderLayout.LINE_END);// 2.5、创建并加入底部面板JPanel panepageend=CreatePanel.createbottom();jf.add(panepageend,BorderLayout.PAGE_END);jf.setVisible(true);}

创建区域面板类,划分容器区域

CreatePanel.java

import javax.swing.*;import java.awt.*;public class CreatePanel.login {private static Loginlistener ll=null;private static JPanel createPangeStart(JFrame jf){JPanel pane=new JPanel();pane.setLayout(null);pane.setPreferredSize(new Dimension(0,140));ImageIcon image=new ImageIcon("images/back.jpg");JLabel jl=new JLabel(image);jl.setBounds(0,0,426, image.getIconHeight());JButton btn=new JButton(new ImageIcon("images/close_normal.jpg"));btn.setBounds(403,0,26,26);btn.setRolloverIcon(new ImageIcon("images/close_hover.jpg"));btn.setBorderPainted(false);btn.addActionListener(e->{jf.dispose();});pane.add(jl);pane.add(btn);return pane;}private static JPanel createleft(){JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(130,0));ImageIcon image=new ImageIcon("images/qq.jpg");JLabel background=new JLabel(image);background.setBounds(0, 0, 120, 110);panel.add(background);return panel;}public static JPanel createcenter(JFrame jf){JPanel panel=new JPanel();panel.setLayout(null);String str[]={"1235685688","556846865","556989509"};JComboBox<Object> jcoCenter=new JComboBox<Object>(str);panel.add(jcoCenter);jcoCenter.setEditable(true);jcoCenter.setBounds(0, 15, 175, 30);jcoCenter.setFont(new Font("Calibrl",0,13));JPasswordField jpaCenter=new JPasswordField();jpaCenter.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));jpaCenter.setBounds(0, 44, 175, 30);jpaCenter.setPreferredSize(new Dimension(185,25));panel.add(jpaCenter);ImageIcon image=new ImageIcon("images/keyboard.jpg");JButton jbu=new JButton(image);jbu.setPreferredSize(new Dimension(22,20));jbu.setBorderPainted(false);jpaCenter.add(jbu);JCheckBox jch1=new JCheckBox("记住密码");jch1.setFocusPainted(false);jch1.setFont(new Font("宋体",0,12));jch1.setBounds(0, 85, 80, 20);panel.add(jch1);JCheckBox jch2=new JCheckBox("自动登录");jch2.setFocusPainted(false);jch2.setFont(new Font("宋体",0,12));jch2.setBounds(100, 85, 80, 20);ll=new LoginListener(jcoCenter,jpaCenter,jf);panel.add(jch2);return panel;}private static JPanel createright(){JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(100,0));JLabel regeist=new JLabel("注册账号");regeist.setForeground(new Color(100,149,238));regeist.setBounds(0,13,60,30);regeist.setFont(new Font("宋体",0,12));JLabel regetpwd=new JLabel("找回密码");regetpwd.setForeground(new Color(100,149,238));regetpwd.setBounds(0,43,60,30);regetpwd.setFont(new Font("宋体",0,12));panel.add(regetpwd);panel.add(regeist);return panel;} private static JPanel createbottom(){JPanel pane=new JPanel();pane.setPreferredSize(new Dimension(1,51));pane.setLayout(null);JButton jb1=new JButton(new ImageIcon("images/single_normal.jpg"));jb1.setPreferredSize(new Dimension(40,40));jb1.setFocusPainted(false);jb1.setRolloverIcon(new ImageIcon("images/single_down.jpg"));jb1.setBorderPainted(false);jb1.setContentAreaFilled(false);jb1.setBounds(0,10,40,40);jb1.setToolTipText("多账号登录");ImageIcon img=new ImageIcon("images/login_normal.jpg");JButton jbu=new JButton("登 录",img);jbu.addActionListener(ll);jbu.setFont(new Font("宋体",0,13));jbu.setBounds(130,0,175,40);jbu.setHorizontalTextPosition(SwingConstants.CENTER);jbu.setFocusPainted(false);jbu.setContentAreaFilled(false);jbu.setBorderPainted(false);jbu.setRolloverIcon(new ImageIcon("images/lohin_hover.jpg"));JButton jbri=new JButton(new ImageIcon("images/right_normal.jpg"));jbri.setBounds(380,10,40,40);jbri.setFocusPainted(false);jbri.setBorderPainted(false);jbri.setContentAreaFilled(false);jbri.setRolloverIcon(new ImageIcon("images/right_hover.jpg"));jbri.setToolTipText("二维码登录");pane.add(jb1);pane.add(jbu);pane.add(jbri);return pane;}}

创建并注册监听器

LoginListener.java

import javax.swing.*;import java.awt.event.*;import java.awt.*;public class Loginlistener implements ActionListener{private JComboBox<Object>jco;private JPasswordField jpa;private JFrame jf;public Loginlistener(JComboBox<Object>jco,JPasswordField jpa,JFrame jf) {// TODO 自动生成的构造函数存根super();this.jco=jco;this.jpa=jpa;this.jf=jf;}@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根String name=(String)jco.getSelectedItem();String pwd=new String(jpa.getPassword());if(name.equals("123456896")&& pwd.equals("123")){jf.dispose();JFrame jfn=new JFrame();jfn.setSize(289,687);jfn.setLocation(800,100);jfn.setUndecorated(true);jfn.setResizable(true);jfn.setVisible(true);JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(0,140));ImageIcon img=new ImageIcon("images/qqSuccess.jpg");JLabel background=new JLabel(img);background.setBounds(0,0,289,687);panel.add(background);JButton out=new JButton(new ImageIcon("images/close2_normal.jpg"));out.setBounds(265,0,26,26);out.setRolloverIcon(new ImageIcon("images/close2_hover.jpg"));out.setBorderPainted(false);panel.add(out);jfn.add(panel);out.addActionListener(event->jfn.dispose());}else{JOptionPane.showMessageDialog(null, "你输入的账户名或密码不正确,请重新输入!");}}}

编写程序入口

public static void main(String[]args) {SwingUtilities.invokeLater(QQlogin::initLogin);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。