Java学习ing——又是接口(仿QQ登录界面)

之前其实还欠了一篇也是界面设计的,今天补上。
这篇是模仿QQ登录的,但是呢,由于技术限制,现在还出不来登录的界面……

代码,上!

首先是界面的设计

import java.awt.FlowLayout;//引入布局
import javax.swing.ImageIcon;//引入图片
import javax.swing.JFrame;
import javax.swing.JTextField;//引入文本框
import javax.swing.JPasswordField;//引入密码框
import javax.swing.JButton;
import javax.swing.JLabel;//引入标签,有字的那种
import javax.swing.JCheckBox;//引入复选框

public class QQLogin {

	
	//显示界面的方法
	public void showUI() {
		//创建窗体的对象
		JFrame loginFrame = new JFrame();
		//设置窗体的属性:大小 、位置居中、关闭的操作
		loginFrame.setSize(600, 450);
		loginFrame.setLocationRelativeTo(null);
		loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击关闭程序停止运行
		loginFrame.setTitle("QQ登录");
		//设置窗体的布局(流式布局)
		FlowLayout layout = new FlowLayout();
		loginFrame.setLayout(layout);
		
		
		//创建一个图片
		ImageIcon icon = new ImageIcon(getClass().getResource("293.png"));
		//创建一个显示图片的标签对象
		JLabel iconLabel = new JLabel(icon);
		//***注意要添加到窗体上
		loginFrame.add(iconLabel);
		
		
		//创建输入框的对象
		JTextField nameInput = new JTextField(40);
		//添加到窗体上
		loginFrame.add(nameInput);
		
		//创建注册账号的标签
		JLabel registerLabel = new JLabel("注册账号");
		//添加到窗体上
		loginFrame.add(registerLabel);
		//创建输入密码的对象
		JPasswordField passwordInput=new JPasswordField(40);
		loginFrame.add(passwordInput);

	    JLabel password= new JLabel("忘记密码");
		loginFrame.add(password);

		//定义复选框
		JCheckBox check=new JCheckBox("记住密码");
		loginFrame.add(check);
		JCheckBox automation=new JCheckBox("自动登录");
		loginFrame.add(automation);
		
		//创建登录按钮
		JButton enter=new JButton("登录");
		loginFrame.add(enter);
		//创建注册按钮
		JButton register=new JButton("注册");
		loginFrame.add(register);

		//设置窗体可见
		loginFrame.setVisible(true);
		
		LoginListener loginListener=new LoginListener();//调用监视器类
        enter.addActionListener(loginListener);//对登录按钮进行监视
        register.addActionListener(loginListener);
        loginListener.namefield = nameInput;//把输入的账号赋值到监视器中
		loginListener.pwdfield = passwordInput;
	}
	
	//主方法
	public static void main(String[] args) {
		//创建界面的对象
		QQLogin ui = new QQLogin();
		//显示界面
		ui.showUI();
	}

}

然后是监听器的

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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import java.awt.FlowLayout;



//调用监视器接口
public class LoginListener implements ActionListener {
	//定义全局变量,使整个方法都可以使用
    JTextField namefield;//定义监视器中使用的账号
    JPasswordField pwdfield;
    JTextField nameInput;
    JPasswordField passwordInput;
	String nameinput;
	String pwdinput;
	//重载接口中的抽象方法
    public void actionPerformed(ActionEvent e) {   //actionevent 为点击按钮的事件
    	String btnStr = e.getActionCommand();//得到按钮的内容
    	if (btnStr.equals("登录")) {
			String namestr=namefield.getText();//输入的账号赋值给局部变量
			String pwdstr=pwdfield.getText();
	

			if(namestr.equals(nameinput)&&pwdstr.equals(pwdinput))//如果账号密码匹配
			{
				JFrame jf=new JFrame();//创建新界面
				jf.setLocationRelativeTo(null);
				jf.setSize(300, 200);
				jf.setVisible(true);
				JLabel successLabel = new JLabel("登录成功");
				jf.add(successLabel);
			}else {
				JFrame jf=new JFrame();
				jf.setLocationRelativeTo(null);
				jf.setSize(300, 200);
				jf.setVisible(true);
				JLabel failLabel = new JLabel("登录失败");
				jf.add(failLabel);
			}

		}
		
    	if (btnStr.equals("注册")) {
    		JFrame jf=new JFrame();//点击注册出现注册的新窗口
			jf.setLocationRelativeTo(null);
			FlowLayout layout = new FlowLayout();
			jf.setLayout(layout);
			jf.setSize(300, 200);
			jf.setVisible(true);
			JLabel nameLabel = new JLabel("账号");
			jf.add(nameLabel);
			 nameInput = new JTextField(20);//全局变量有定义,不用再次申明类型
			jf.add(nameInput);
			JLabel pdwLabel = new JLabel("密码");
			jf.add(pdwLabel);
			 passwordInput=new JPasswordField(20);
			jf.add(passwordInput);
			JButton btn = new JButton("完成注册");
			jf.add(btn);
			btn.addActionListener(this);//调用整个类,this指代LoginListener(完成注册的按钮)
			
		}else if (btnStr.equals("完成注册")) {//在点击“完成注册”时进行赋值
		      nameinput=nameInput.getText();
		      pwdinput=passwordInput.getText();
	}
    }

}

最后的结果大概是这样的
在这里插入图片描述在这里插入图片描述在这里插入图片描述
读书去啦~
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值