QQ登录界面

QQ是大家平时使用比较多的一个交友软件,今天我们来实现一下QQ的登录界面。

在实现之前,我们先来想一下QQ的登录界面有哪些基本的组件:

  • 输入框(账号和密码)
  • 登录按钮
  • 复选框
  • 标签

使用的布局:边框布局

代码实现

界面类

package qq;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.*;


public class LoginUI {
	public void showUI(){
		JFrame Login = new JFrame();
		Login.setTitle("QQ2018");
		Login.setSize(550,430);
		//设置位置居中
		Login.setLocationRelativeTo(null);
		Login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//北部
		ImageIcon icon = new ImageIcon("C:\\Users\\Administrator\\Desktop\\Java\\蓝杰\\Image\\beijing.png");
		JLabel JIcon = new JLabel(icon);
		Login.add(JIcon, BorderLayout.NORTH);
		//西部
		ImageIcon qqIcon = new ImageIcon("C:\\Users\\Administrator\\Desktop\\Java\\蓝杰\\Image\\head.png");
		JLabel Jqq = new JLabel(qqIcon);
		Login.add(Jqq, BorderLayout.WEST);
		//东部
		JPanel Epanel = new JPanel();
		JLabel J1 = new JLabel("注册账号");
		JLabel J2 = new JLabel("找回密码");
		Dimension panelSize = new Dimension(100,50);
		Epanel.setPreferredSize(panelSize);
		Dimension LabelSize = new Dimension(80,30);
		J1.setPreferredSize(LabelSize);;
		J2.setPreferredSize(LabelSize);
		Epanel.add(J1);
		Epanel.add(J2);
		Login.add(Epanel, BorderLayout.EAST);
		//中间
		JTextField nameInput = new JTextField("手机/qq/邮箱");
		JPasswordField pass = new JPasswordField();
		JCheckBox b1 = new JCheckBox("记住密码");
		JCheckBox b2 = new JCheckBox("自动登陆");
		//设置面板将文本输入框、密码输入框、标签放置在面板上
		JPanel Cpanel = new JPanel();
		//设置组件的大小 创建Dimension对象
		Dimension input = new Dimension(300,30);
		nameInput.setPreferredSize(input);
		pass.setPreferredSize(input);
		Cpanel.add(nameInput);
		Cpanel.add(pass);
		Cpanel.add(b1);
		Cpanel.add(b2);
		Login.add(Cpanel, BorderLayout.CENTER);
		//南部
		JButton button = new JButton("登陆");
		//将监听器添加在button上
		//创建监听器对象
		LoginListener Listen = new LoginListener();
		button.addActionListener(Listen);
		//调用监听器的函数
		Listen.setTextField(nameInput);
		Listen.setPassword(pass);
		
		Dimension buttonSize = new Dimension(150,50);
		button.setPreferredSize(buttonSize);
		JPanel Spanel = new JPanel();
		Spanel.add(button);
		Login.add(Spanel, BorderLayout.SOUTH);
		
		
		//设置可见
		Login.setVisible(true);
	}
	
	public static void main(String[] args){
		LoginUI ui = new LoginUI();
		ui.showUI();
	}

}

QQ登录界面_第1张图片
上面的代码已经实现了基本的QQ界面,那么我们是不是希望在我们输入账号和密码之后,点击登录按钮会有反应呢 ?这就需要我们给登录按钮加一个监听器了,当我们点击登录按钮之后,它会获得输入框中的账号和密码信息,如果正确,则登录成功,否则,提示输入的信息有误。

监听器类

package qq;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class LoginListener implements ActionListener{
	
	private JTextField nameInput;
	private JPasswordField pass;
	//函数作用:将两个不同类里面的变量属性沟通起来
	public void setTextField(JTextField nameInput){
		this.nameInput = nameInput;
	}
	
	public void setPassword(JPasswordField pass){
		this.pass = pass;
	}
	
	public void actionPerformed(ActionEvent e){
		JFrame JF = new JFrame();
		JF.setSize(400,300);
		JF.setLocationRelativeTo(null);
		JF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		String str;
		
		//获取用户名,getText()是JAVA中的方法,获取文本框内容
		String name = nameInput.getText();
		
		//获取密码的输入框的内容
		char[] temp = pass.getPassword();
		//根据char[]生成字符串
		String pwd = new String(temp);
		
		if(name.equals("admin")&&(pwd.equals("123456"))){
			str = "登陆成功!";
		}else {
			str = "您输入的信息有误,请重新输入!";
		}
		JLabel J = new JLabel(str);
		JF.add(J);
		JF.setVisible(true);
		
		
	}

}

下面就是我们实现的效果了:
QQ登录界面_第2张图片
QQ登录界面_第3张图片

可承接各种项目,有意者加QQ:1217898975

你可能感兴趣的:(Java)