虽说没有完全还原,但是神似不少,以下是代码:

public class LoginFrame {
Socket socket;
PrintWriter pWriter;
BufferedReader bReader;RegistrationPanel rp;JFrame frame;
JPanel panel;
JButton button_r;
private JTextField textField;
private JPasswordField textField_1;
int mousex,mousey;
/*** 账号密码长度满足条件时,变为true*/
boolean b=false;String url="https://ssl.zc.qq.com/v3/index-chs.html?from=client&pt_clientver=5575&pt_src=1&regkey"+ "=4204DE5322DB44562E9D5E7910D766D681B44BA66BCCD51B39895654916405C2&ADUIN=0&ADSESSION="+ "0&ADTAG=CLIENT.QQ.5575_NewAccount_Btn.0&ADPUBNO=26791";public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {new LoginFrame();                    } catch (Exception e) {e.printStackTrace();}}});
}public LoginFrame() {frame = new JFrame();//隐藏标题栏frame.setUndecorated(true);//不可改变窗体大小frame.setResizable(false);       frame.setTitle("神秘社区");frame.setIconImage(Toolkit.getDefaultToolkit().getImage("image/应用图标.jpg"));frame.setBounds(500, 200, 411, 350);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);initialize();frame.getContentPane().add(panel);frame.addMouseListener(new MouseAdapter(){public void mousePressed(MouseEvent e) {//获取点击鼠标时的坐标mousex= e.getPoint().x;mousey= e.getPoint().y;frame.getContentPane().requestFocusInWindow();button_r.setText(" ▼");}});      frame.addMouseMotionListener(new MouseMotionAdapter(){public void mouseDragged(MouseEvent e) {frame.setLocation((e.getXOnScreen()-mousex),(e.getYOnScreen()-mousey));//设置拖拽后,窗口的位置// System.out.println(e.getXOnScreen()+","+mousex+","+e.getYOnScreen()+","+mousey);}});int windowWidth = frame.getWidth();//获得窗口宽int windowHeight = frame.getHeight();//获得窗口高Toolkit kit = Toolkit.getDefaultToolkit();//定义工具包Dimension screenSize = kit.getScreenSize();//获取屏幕的尺寸int screenWidth = screenSize.width;//获取屏幕的宽int screenHeight = screenSize.height;//获取屏幕的高frame.setLocation(screenWidth/2-windowWidth/2, screenHeight/2-windowHeight/2);//设置窗口}/*** Initialize the contents of the frame.*/
private void initialize() {panel = new JPanel();panel.setBounds(0, 0, 411, 350);panel.setLayout(null);panel.setBackground(Color.white);JLabel label_1 = new JLabel("");label_1.setIcon(new ImageIcon("image/应用图标1.png"));label_1.setBounds(0, 0, 37, 51);panel.add(label_1);JLabel label_3 = new JLabel("");label_3.setIcon(new ImageIcon("image/神秘社区白色1.png"));label_3.setForeground(Color.RED);label_3.setBounds(43, 10, 142, 32);panel.add(label_3);JButton btnNewButton_1 = new JButton("");btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {btnNewButton_1.setBackground(Color.red);}});//背景透明btnNewButton_1.setContentAreaFilled(false);//边框不显示btnNewButton_1.setBorderPainted(false);btnNewButton_1.setIcon(new ImageIcon("image/最小化图标11.png"));btnNewButton_1.setBounds(348, 0, 37, 32);//鼠标悬停时提示信息btnNewButton_1.setToolTipText("最小化");//焦点框不显示btnNewButton_1.setFocusPainted(false);btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {frame.setExtendedState(JFrame.ICONIFIED);}});btnNewButton_1.addMouseListener(new MouseAdapter() {/*@Overridepublic void mouseClicked(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mouseReleased(MouseEvent e) {// TODO 自动生成的方法存根}*/@Overridepublic void mouseEntered(MouseEvent e) {// TODO 自动生成的方法存根btnNewButton_1.setIcon(new ImageIcon("image/最小化图标1.png"));}@Overridepublic void mouseExited(MouseEvent e) {// TODO 自动生成的方法存根btnNewButton_1.setIcon(new ImageIcon("image/最小化图标11.png"));}});panel.add(btnNewButton_1);JButton button_2 = new JButton("");button_2.setContentAreaFilled(false);button_2.setBorderPainted(false);button_2.setIcon(new ImageIcon("image/关闭图标2.png"));button_2.setBounds(378, 0, 37, 32);button_2.setToolTipText("关闭");button_2.setFocusPainted(false);button_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(socket!=null){try {socket.close();} catch (IOException e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}}System.exit(0);//frame.dispose();}});button_2.addMouseListener(new MouseAdapter() {/*@Overridepublic void mouseClicked(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mouseReleased(MouseEvent e) {// TODO 自动生成的方法存根}*/@Overridepublic void mouseEntered(MouseEvent e) {// TODO 自动生成的方法存根button_2.setIcon(new ImageIcon("image/关闭图标22.png"));}@Overridepublic void mouseExited(MouseEvent e) {// TODO 自动生成的方法存根button_2.setIcon(new ImageIcon("image/关闭图标2.png"));}});panel.add(button_2);JLabel lblNewLabel_2 = new JLabel();lblNewLabel_2.setIcon(new ImageIcon("image/背景g2.gif"));lblNewLabel_2.setBounds(0, -5, 433, 155);panel.add(lblNewLabel_2);JLabel lblNewLabel = new JLabel(":");lblNewLabel.setBounds(113, 166, 37, 26);panel.add(lblNewLabel);lblNewLabel.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));lblNewLabel.setIcon(new ImageIcon("image/登录_用户图标1.jpg"));JLabel lblNewLabel_1 = new JLabel(":");lblNewLabel_1.setBounds(114, 207, 37, 27);panel.add(lblNewLabel_1);lblNewLabel_1.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));lblNewLabel_1.setAutoscrolls(true);lblNewLabel_1.setIcon(new ImageIcon("image/登录_密码图标2.jpg"));//神秘号记录列表JPopupMenu popupMenu = new JPopupMenu();popupMenu.setOpaque(false);popupMenu.setBorderPainted(false);panel.add(popupMenu);JMenuItem menuItem_1 = new JMenuItem("1            0         0           0      0     ");popupMenu.add(menuItem_1);JMenuItem menuItem = new JMenuItem("                  ");menuItem.setBorderPainted(true);menuItem.setContentAreaFilled(false);menuItem.setOpaque(true);menuItem.setSize(new Dimension(99, 20));menuItem.setPreferredSize(new Dimension(40, 22));popupMenu.add(menuItem);button_r = new JButton(" ▼");button_r.setBounds(271, 166, 24, 26);button_r.setFont(new Font("宋体", Font.PLAIN, 15));button_r.setContentAreaFilled(false);//button_r.setFocusPainted(false);button_r.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));button_r.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {String t=button_r.getText();if(t.equals(" ▼")){button_r.setText(" ▲");popupMenu.show(panel, 111, 192);}else{button_r.setText(" ▼");popupMenu.setVisible(false);}//button_r.requestFocus();}});panel.add(button_r);//神秘号输入框textField = new JTextField();textField.setBounds(149, 165, 122, 27);textField.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));textField.setColumns(10);textField.addKeyListener(new KeyListener(){@Overridepublic void keyTyped(KeyEvent e) {//如果输入的不是数字就取消输入char ch=e.getKeyChar();String t=textField.getText();//第一位不能为0if(t.equals("")&&ch=='0'){e.consume();}else if((!(ch>='0'&&ch<='9'))||t.length()>9){e.consume();}}@Overridepublic void keyPressed(KeyEvent e) {}@Overridepublic void keyReleased(KeyEvent e) {}});textField.addFocusListener(new FocusListener(){@Overridepublic void focusGained(FocusEvent e) {lblNewLabel.setIcon(new ImageIcon("image/登录_用户图标2.jpg"));lblNewLabel.setBorder(new MatteBorder(0, 0, 2, 0, Color.BLACK));textField.setBorder(new MatteBorder(0, 0, 2, 0, Color.BLACK));button_r.setBorder(new MatteBorder(0, 0, 2, 0, Color.black));}@Overridepublic void focusLost(FocusEvent e) {lblNewLabel.setIcon(new ImageIcon("image/登录_用户图标1.jpg"));lblNewLabel.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));button_r.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));textField.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));}});panel.add(textField);//密码输入框textField_1 = new JPasswordField();textField_1.setBounds(151, 208, 140, 26);textField_1.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));   textField_1.setColumns(10);textField_1.addKeyListener(new KeyListener(){@Overridepublic void keyTyped(KeyEvent e) {//char[] t=textField_1.getPassword();if(t.length>15){e.consume();}}@Overridepublic void keyPressed(KeyEvent e) {}@Overridepublic void keyReleased(KeyEvent e) {}});textField_1.addFocusListener(new FocusListener(){@Overridepublic void focusGained(FocusEvent e) {lblNewLabel_1.setIcon(new ImageIcon("image/登录_密码图标3.jpg"));lblNewLabel_1.setBorder(new MatteBorder(0, 0, 2, 0, Color.BLACK));textField_1.setBorder(new MatteBorder(0, 0, 2, 0, Color.BLACK));}@Overridepublic void focusLost(FocusEvent e) {lblNewLabel_1.setIcon(new ImageIcon("image/登录_密码图标2.jpg"));lblNewLabel_1.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));textField_1.setBorder(new MatteBorder(0, 0, 2, 0, Color.gray));}});panel.add(textField_1);//登录按钮JButton btnNewButton = new JButton(); btnNewButton.setBorderPainted(false);btnNewButton.setContentAreaFilled(false);btnNewButton.setRequestFocusEnabled(false);btnNewButton.setForeground(Color.WHITE);btnNewButton.setIcon(new ImageIcon("image/安全登录1_1.jpg"));btnNewButton.setBounds(85, 269, 241, 43);     btnNewButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {if(b){int denglu;new Thread(new Runnable() {public void run() {try {//创建套接字,连接服务器socket=new Socket("127.0.0.1",7777);//创建往套接字中写数据的管道,给服务器发消息,即账号和密码pWriter=new PrintWriter(socket.getOutputStream());//String login[]={textField.getText(),new String(textField_1.getPassword())};//将账号、密码传给服务器pWriter.println(textField.getText()+"/"+new String(textField_1.getPassword()));pWriter.flush();//创建从套接字读数据的管道,接受服务器发来的消息,即是否登录成功bReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));String loginTrue=bReader.readLine();if(loginTrue.equals("1")){new ShenMiFrame();//new MainFrame();frame.dispose();

// JOptionPane.showMessageDialog(panel,
// “登录成功!”,
// “登录成功”,
// JOptionPane.INFORMATION_MESSAGE,
// new ImageIcon(“image/应用图标1.png”));
}else{
JOptionPane.showMessageDialog(panel,
“账号或密码不正确!”,
“登录失败”,
JOptionPane.INFORMATION_MESSAGE,
new ImageIcon(“image/应用图标1.png”));
}
pWriter.close();
} catch (UnknownHostException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}

             }).start();/*if(!Login.login(textField.getText(),new String(textField_1.getPassword()))){JOptionPane.showMessageDialog(panel,"账号或密码不正确!","登录失败", JOptionPane.INFORMATION_MESSAGE, new ImageIcon("image/应用图标1.png"));}else{JOptionPane.showMessageDialog(panel,"登录成功!","登录成功", JOptionPane.INFORMATION_MESSAGE, new ImageIcon("image/应用图标1.png"));}*/}}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {// TODO 自动生成的方法存根btnNewButton.setIcon(new ImageIcon("image/安全登录3.jpg"));btnNewButton.setCursor(new Cursor(Cursor.HAND_CURSOR));String t1=textField.getText();String t2=new String(textField_1.getPassword());int Num;if(t1.length()<5||t2.length()<3){btnNewButton.setEnabled(false);//刷新界面((JPanel) frame.getContentPane()).updateUI();}else{btnNewButton.setEnabled(true);((JPanel) frame.getContentPane()).updateUI();b=true;}}@Overridepublic void mouseExited(MouseEvent e) {// TODO 自动生成的方法存根btnNewButton.setIcon(new ImageIcon("image/安全登录1_1.jpg"));btnNewButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));btnNewButton.setEnabled(true);((JPanel) frame.getContentPane()).updateUI();}});panel.add(btnNewButton);JLabel label = new JLabel("注册账号");label.setBounds(10, 320, 54, 15);label.setForeground(Color.gray);//设置鼠标悬停时的形状label.setCursor(new Cursor(Cursor.HAND_CURSOR));rp=new RegistrationPanel(this);//设置超链接label.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {int clickTimes = e.getClickCount();if (clickTimes == 2) {try {  Runtime.getRuntime().exec("cmd.exe /c start "+url);  } catch (Exception ex) {  ex.printStackTrace();  }  }else{//切换注册面板frame.getContentPane().remove(panel); ((JPanel) frame.getContentPane()).updateUI();frame.getContentPane().add(rp.contentPane);label.setForeground(Color.gray);}    }/*@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mouseReleased(MouseEvent e) {// TODO 自动生成的方法存根}*/@Overridepublic void mouseEntered(MouseEvent e) {// TODO 自动生成的方法存根label.setForeground(Color.black);}@Overridepublic void mouseExited(MouseEvent e) {// TODO 自动生成的方法存根label.setForeground(Color.gray);}});panel.add(label);JLabel label_2 = new JLabel("找回密码");label_2.setBounds(350, 320, 54, 15);//灰色字体label_2.setForeground(Color.gray);//设置鼠标悬停时的形状label_2.setCursor(new Cursor(Cursor.HAND_CURSOR));//设置鼠标悬停时字体变化label_2.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {label.setForeground(Color.gray);}@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mouseReleased(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mouseEntered(MouseEvent e) {// TODO 自动生成的方法存根label_2.setForeground(Color.black);}@Overridepublic void mouseExited(MouseEvent e) {// TODO 自动生成的方法存根label_2.setForeground(Color.gray);}});panel.add(label_2);JCheckBox checkBox = new JCheckBox("记住账号");checkBox.setBackground(Color.WHITE);checkBox.setBounds(213, 240, 80, 23);//焦点框不显示checkBox.setFocusPainted(false);panel.add(checkBox);JCheckBox checkBox_1 = new JCheckBox("记住密码");checkBox_1.setBackground(Color.WHITE);checkBox_1.setBounds(116, 240, 80, 23);//焦点框不显示checkBox_1.setFocusPainted(false);panel.add(checkBox_1);}

}

JAVA仿QQ登录界面相关推荐

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

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

  2. java 仿qq登录界面7.1_安卓开发学习笔记(七):仿写腾讯QQ登录注册界面

    这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的XML布局模式. 废话不多说,直接上代码: 一.activity ...

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

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

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

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

  5. Android实现仿QQ登录界面背景动画效果

    登录QQ的时候,我们会看到在登录界面的背景不是静态的,而是一段动画效果,刚开始觉得蛮好奇的,现在我们也来实现一下这种效果,实现起来还是挺简单的. 实现步骤: 1.自定义CustomVideoView类 ...

  6. java qq登录界面_用java实现QQ登录界面怎么写

    展开全部 用32313133353236313431303231363533e78988e69d8331333365646263java做QQ登录界面的写法如下: package ch10; impo ...

  7. JAVA编写QQ登录界面

    在开始学习JAVA图形界面编程中,老师留的第一个作业就是编写一个QQ登录界面,本来我的JAVA就不怎么会写,所以就在网上找啊找,结果就翻到了某位大佬的博客,参考了许多,附上大佬链接http://wz9 ...

  8. java 仿qq登陆界面

    无聊中 想写的..哎 迷茫啊.. Main: package 仿qq登录; public class Main {public static void main(String args[]){Wind ...

  9. java实现qq登录界面_java模仿实现QQ登录界面

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

最新文章

  1. Windows服务ServicesDependedOn的奇怪问题?
  2. VC++绘制铁路道岔
  3. leetcode刷题 82.删除排序链表中的重复元素Ⅱ
  4. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)
  5. Spring MVC:表单处理卷。 4 –单选按钮
  6. java获取C盘下的隐藏目录文件名称
  7. 员工借款及还款场景演练
  8. (转)Python3异常-AttributeError: module 'sys' has no attribute 'setdefaultencoding
  9. Deep learning 学习开篇
  10. 公司网络需要内网开发,教你如何使内外网同时访问(windows)
  11. 【iOS】使用storyboard界面跳转报错:unrecognized selector sent to instance 0x7
  12. ubuntu 时间戳不对
  13. orcadcapture安装_OrCad Capture
  14. 如何将OGG文件转换成MP3?
  15. 解决树莓派4B不能通过手机热点连上WiFi
  16. ARP断网攻击(详细教程)
  17. java程序员工资有多少?java程序员现状如何?
  18. 关灯后灯常亮、微亮、闪烁——多种原因分析
  19. 如何关闭 window10 自带的杀毒软件
  20. C switch 语句

热门文章

  1. 南通大学python期末考试试卷_python期末考试复习试卷
  2. StarRocks3.0介绍
  3. MapReduce并行处理csv文件,将船舶数据划分子轨迹
  4. 【Unity3D】法线贴图和凹凸映射
  5. oracle erp转行,【Oracle ERP实施顾问怎么样】TCT2021年Oracle ERP实施顾问前景怎么样-看准网...
  6. oracle数组越界,为什么栈中的数组越界后经常不崩溃,还可以正常的操作呢
  7. 获取远程git服务器上的项目到本地
  8. 达人评测酷睿i5 12450h和i5 11320h选哪个好 i512450h和i511320h对比
  9. pe盘启动MySQL_将已经分区的移动硬盘弄成启动WIN PE盘(一般无需要格式化) 并进行GHO或ISO原版安装系统(亲自制作成功) | 学步园...
  10. 软件测试第一次作业(评测12306手机app)