代码来自传智播客第二版(java)图片可根据自己喜好下载相关图片,建议将图片放到工作空间的目录下面,这样就可以直接获取图片,例如以这个格式“xxx.jpg”,xxx图片名,jpg格式,由于时间仓促,做出来的效果有点不堪入目哈哈。
登录账号123456789密码123

CreatePanel.java



import java.awt.*;
import javax.swing.*;
public class CreatePanel {private static LoginListener ll=null;//顶部面板区域public static JPanel CreateNorthPanel (JFrame jf) {//创建一个JPanel顶部面板JPanel panel=new JPanel();//取消面板内默认布局panel.setLayout(null);//设置顶部面板尺寸panel.setPreferredSize(new Dimension(0,140));//1.1向顶部面板添加背景照片ImageIcon image=new ImageIcon("back.jpg");JLabel background=new JLabel(image);//设置背景照片的位置及尺寸background.setBounds(0,0,426,image.getIconHeight());panel.add(background);//1.2在顶部JPanel面板右上角添加一个退出按钮JButton out=new JButton(new ImageIcon("java.jpg"));out.setBounds(403,0,26,26);//设置鼠标移动到退出按钮时更改图片out.setRolloverIcon(new ImageIcon("close.jpg"));//取消按钮边框效果out.setBorderPainted(false);out.addActionListener(event->jf.dispose());panel.add(out);return panel;}//左侧面板区域public static JPanel CreateWestPanel() {//2.创建一个JPanel左侧面板JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(130,0));//向左侧面板添加背景照片ImageIcon image=new ImageIcon("qq.jpg");JLabel background=new JLabel(image);background.setBounds(0,0,120,110);panel.add(background);return panel; }//中部面板区域public static JPanel CreateCenterPanel(JFrame jf) {//3.创建一个JPanel中部面板JPanel panel=new JPanel();panel.setLayout(null);//3.1创建一个JcomboBox下拉框组件,并初始化qq账号String str[]= {"123456789","987654321","1314520888"};JComboBox<Object>jcoCenter=new JComboBox<Object>(str);panel.add(jcoCenter);//设置下拉框可编辑jcoCenter.setEditable(true);jcoCenter.setBounds(0,15,175,30);//设置下拉框内容字体jcoCenter.setFont(new Font("Calibri",0,13));//3.2创建一个JPasswordField密码框组件JPasswordField jPaCenter=new JPasswordField();//设置密码框面板为FlowLayout布局jPaCenter.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));jPaCenter.setBounds(0,44,175,30);jPaCenter.setPreferredSize(new Dimension(185,25));panel.add(jPaCenter);//3,3创建ImageIcon小键盘图标组件,并加入到密码框组件中ImageIcon image=new ImageIcon("keyboard.jpg");JButton jbu=new JButton(image);jbu.setPreferredSize(new Dimension(22,20));jbu.setBorderPainted(false);jPaCenter.add(jbu);//3.4创建两个JCheckBox多选框组件JCheckBox jch1=new JCheckBox("记住密码");//设置选中时不显示边框jch1.setFocusPainted(false);jch1.setFont(new Font("宋体",0,13));jch1.setBounds(100,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);panel.add(jch2);ll=new LoginListener(jcoCenter,jPaCenter,jf);return panel;}//右侧面板区域public static JPanel createEastPanel() {//4.创建一个JPanel右侧面板JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(100,0));//创建两个JLable标签组件JLabel regist=new JLabel("注册账号");regist.setForeground(new Color(100,149,238));regist.setBounds(0,13,60,30);regist.setFont(new Font("宋体",0,12));JLabel regetpwd=new JLabel("找回密码");regist.setForeground(new Color(100,149,238));regist.setBounds(0,43,60,30);regist.setFont(new Font("宋体",0,12));panel.add(regist);panel.add(regetpwd);return panel; }//底部面板区域public static JPanel CreateSouthPanel() {//6.创建一个JPanel底部面板JPanel panel=new JPanel();panel.setPreferredSize(new Dimension(0,51));panel.setLayout(null);//6.1创建左下角多人登陆图标组件JButton jble=new JButton(new ImageIcon("single.jpg"));jble.setPreferredSize(new Dimension(40,40));jble.setFocusPainted(false);jble.setRolloverIcon(new ImageIcon("single.jpg"));jble.setBorderPainted(false);//设置不显示按钮区域jble.setContentAreaFilled(false);jble.setBounds(0,10,40,40);jble.setToolTipText("多账号登录");//6.2创建底部中间登录图标组件ImageIcon image=new ImageIcon("login.jpg");JButton jb=new JButton("登   录",image);//jb.setFont(new Font("宋体",0,13));jb.setBounds(130,0,175,40);//将文字放在图片中间jb.setHorizontalTextPosition(SwingConstants.CENTER);jb.setFocusPainted(false);jb.setContentAreaFilled(false);jb.setBorderPainted(false);jb.setRolloverIcon(new ImageIcon("login.jpg"));jb.addActionListener(ll);//6.3创建右下角二维码登录图标组件JButton jbri=new JButton(new ImageIcon("right.jpg"));jbri.setBounds(380,10,40,40);jbri.setFocusPainted(false);jbri.setBorderPainted(false);jbri.setContentAreaFilled(false);jbri.setRolloverIcon(new ImageIcon("right.jpg"));jbri.setToolTipText("二维码登录");//将底部3个组件添加到底部JPanel面板中panel.add(jble);panel.add(jb);panel.add(jbri);return panel;}
}

QQLogin.java


import java.awt.*;
import javax.swing.*;
public class QQLogin extends JFrame{private static JFrame jf=new JFrame();
public static void initLogin() {jf.setSize(426,300);//设置窗口尺寸jf.setLocation(497,242);//设置窗口在屏幕显示位置jf.setUndecorated(true);//设置JFrame窗口边框不显示jf.setResizable(false);//禁止改变窗口大小//2.根据QQ登录界面效果,进行布局分配BorderLayout border_layout=new BorderLayout();jf.setLayout(border_layout);//2.1创建并加入顶部面板JPanel panel_north=CreatePanel.CreateNorthPanel(jf);jf.add(panel_north,BorderLayout.PAGE_START);//2.2创建并加入中部面板JPanel panel_center=CreatePanel.CreateCenterPanel(jf);jf.add(panel_center,BorderLayout.CENTER);//2.3创建并加入左侧面板JPanel panel_west=CreatePanel.CreateWestPanel();jf.add(panel_west,BorderLayout.LINE_START);//2.4创建并加入底部面板JPanel panel_south=CreatePanel.CreateSouthPanel();jf.add(panel_south,BorderLayout.PAGE_END);//2.5创建并加入右侧面板JPanel panel_east=CreatePanel.createEastPanel();jf.add(panel_east,BorderLayout.LINE_END);jf.setVisible(true); //设置窗口可见
}
public static void main(String[] args) {//使用SwingUtilities工具类调用createAndShowGUI()方法并显示GUI程序SwingUtilities.invokeLater(QQLogin::initLogin);
}
}

LoginListener.java



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginListener implements ActionListener{private JComboBox<Object>jco;//用来获取QQ账号的对象private JPasswordField jpa;//用来获取QQ密码的对象private JFrame jf;LoginListener(JComboBox<Object>jco,JPasswordField jpa,JFrame jf) {super();this.jco=jco;this.jpa=jpa;this.jf=jf;}//为登录动作监听事件执行处理public void actionPerformed(ActionEvent e) {//1.获取登陆的账号和密码String name=(String)jco.getSelectedItem();String pwd=new String(jpa.getPassword());//2.判断输入的账号和密码是否正确if(name.equals("123456789")&&pwd.equals("123")) {//账号正确,先关闭当前JFrame登录窗口jf.dispose();//模拟显示登陆成功后的QQ窗口JFrame jfn=new JFrame();jfn.setSize(289,687);jfn.setLocation(800,100);jfn.setUndecorated(true);jfn.setResizable(true);jfn.setVisible(true);//为QQ显示窗口添加背景图片和退出按钮组件JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(0,140));ImageIcon image=new ImageIcon("success.jpg");JLabel background=new JLabel(image);background.setBounds(0,0,289,687);panel.add(background);//添加退出按钮JButton out=new JButton(new ImageIcon("close.jpg"));out.setBounds(265,0,26,26);out.setRolloverIcon(new ImageIcon("close.jpg"));out.setBorderPainted(false);panel.add(out);jfn.add(panel);//为退出按钮注册监听器,关闭当前窗口out.addActionListener(event->jfn.dispose());}else {//QQ账号或密码输入错误,弹出提示信息JOptionPane.showMessageDialog(null, "你输入的账户名或密码不正确,请重新输入!");}}
}

效果

java的Swing组件模拟qq登录界面相关推荐

  1. java仿qq_java模仿实现QQ登录界面

    本文实例为大家分享了java模仿实现qq登录界面的具体代码,供大家参考,具体内容如下 这是我模仿QQ2015版界面,实现的基本功能有登陆验证,重置等,当然直接复制代码运行是不一样的,还要注意自己插入自 ...

  2. java swing qq_使用java swing实现qq登录界面示例分享

    用Java Swing做的一个QQ登录界面 import java.awt.Container; import java.awt.Image; import java.awt.event.Action ...

  3. java仿qq登录 界面设计,Java Swing仿QQ登录界面效果

    本文实例为大家分享了Java Swing仿QQ登录界面展示的具体代码,供大家参考,具体内容如下 闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEcl ...

  4. java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用

    闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEclipse的拖动功能). 源代码如下: package ibees.qq; import java ...

  5. (JAVA)使用swing组件模仿QQ界面+网络编程实现QQ消息传输

    直接贴当时的实验报告吧. 1.课程题目 模仿腾讯QQ实现一个即时聊天软件,可以进行好友管理以及私聊等功能. 1.1功能性分类 功能类别 功能名称.标识符 描述 用户信息 用户登陆 用户登陆 用户注册 ...

  6. java gui界面设计qq_Java swing界面开发(仿QQ登录界面)

    首先引入包的概念,包:给代码分类,提高的了代码的可读性,封装后方便管理.在包中类的引入:import 包名.类名;包名需小写,多单词用"."隔开.类名的命名规范:首字母大写其后的每 ...

  7. 利用java知识做一个模拟qq登入模拟界面

    qq模拟登入界面 一.设计概述 1.使用java所学知识,做一个qq登入模拟界面,如图所示. QQ登录界面整体可以看做一个容器窗口,使用JFrame容器来实现,从登录界面的布局效果和显示内容可以看出, ...

  8. java qq登录成功界面_java实现简单QQ登录界面

    本文实例为大家分享了java实现简单QQ登录界面的具体代码,供大家参考,具体内容如下 java在图形界面,不是太强项,但不是不可以做,它的开源是very nice! 实现代码如下(想实现完美的界面,可 ...

  9. Swing学习----------QQ登录界面制作(二)

    素材获取可关注微信公众号:开源IT,后台回复 "素材" 免费获取. 上次把QQ界面的主题框架实现了,但是还没有完成最小化,关闭按钮等的功能,这次重新完善了QQ登录界面的功能,本次更 ...

最新文章

  1. html如何使文本变为粗体_什么是Markdown,如何使用它?
  2. 神经网络预测mnist时候如果不归一化,则准确率仅仅10%下文作者svm也遇到了。
  3. django博客项目8:文章详情页
  4. hdu4536 水搜索
  5. 微软亚研院:如何看待计算机视觉未来的走向?
  6. 数据库——关系数据库——交通违规处罚通知书
  7. matlab产生正态分布样本
  8. 结构专业规范大全_2019年一、二级注册结构师专业考试所用的规范、标准、规程...
  9. 本文以H264视频流为例,讲解解码流数据的步骤。
  10. 设计模式(十五):解释器模式
  11. linux ntfs硬盘自动挂,linux下查看所有硬盘分区+挂接NTFS磁盘/硬盘+自动挂接硬盘方法...
  12. 奥鹏数据库应用系统设计下列关于php_南开大学《主干课2-数据库应用系统设计》2020秋主干课考试...
  13. Android自定义控件系列--Path综述
  14. idea IDE 常用快捷键记录
  15. 关店9000家,市值蒸发90%,女装巨头大崩溃的根源找到了
  16. python调用百度地图画轨迹图_利用python和百度地图API实现数据地图标注的方法
  17. spring封装VerifyCodeUtil工具类,生成图片验证码
  18. iOS - Carthage的安装和使用,以及常见报错解决
  19. 音视频-Video标签整理(属性、方法、事件)
  20. 又是一年深秋时--西湖枫叶随拍

热门文章

  1. html超链接怎么设置到下一页,怎么设置超链接到一个网页
  2. PhoneGap问题积累
  3. 计算选手得分c语言程序,c程序评分系统.doc
  4. 数据类型及数据类型转换、转义字符
  5. 经典啊!空当接龙-1,-2,11982局解法
  6. 轻量型注意力模块:ULSAM
  7. 轻量级深度学习网络——ESPNet v2
  8. jsp如何引入html样式,jsp怎么引入css样式?
  9. Windows修改输入法全角半角快捷键
  10. 如何做好IT项目管理?