Java 使用接口、事件监听机制创建登陆页面

我们在创建登陆界面时肯定要有登录按钮,当我们点击这个按钮时,便向电脑输入了命令,那么这个命令是如何产生的??
这就要用到接口和监听器。

事件监听机制:

给事件源组件添加事件监听器,当事件源组件上发生相应类型的事件时,则自动的调用监听器中事件处理方法。
事件:用外部设备操作组件
鼠标事件:用鼠标操作组件(关注鼠标操作的位置、类型)
键盘事件:用键盘操作事件。
动作事件:用鼠标点击按钮(关注是否点击,点的是哪个按钮)
事件监听器
鼠标事件监听器:MouseListener

public interface MouseListener extends EventListener {

    /**
     * Invoked when the mouse button has been clicked (pressed
     * and released) on a component.
     */
    public void mouseClicked(MouseEvent e);

    /**
     * Invoked when a mouse button has been pressed on a component.
     */
    public void mousePressed(MouseEvent e);

    /**
     * Invoked when a mouse button has been released on a component.
     */
    public void mouseReleased(MouseEvent e);

    /**
     * Invoked when the mouse enters a component.
     */
    public void mouseEntered(MouseEvent e);

    /**
     * Invoked when the mouse exits a component.
     */
    public void mouseExited(MouseEvent e);
}

键盘事件监听器:KeyListener

public interface KeyListener extends EventListener {

    /**
     * Invoked when a key has been typed.
     * See the class description for {@link KeyEvent} for a definition of
     * a key typed event.
     */
    public void keyTyped(KeyEvent e);

    /**
     * Invoked when a key has been pressed.
     * See the class description for {@link KeyEvent} for a definition of
     * a key pressed event.
     */
    public void keyPressed(KeyEvent e);

    /**
     * Invoked when a key has been released.
     * See the class description for {@link KeyEvent} for a definition of
     * a key released event.
     */
    public void keyReleased(KeyEvent e);
}

动作事件监听器:ActionListener

public interface ActionListener extends EventListener {

    /**
     * Invoked when an action occurs.
     */
    public void actionPerformed(ActionEvent e);

}

下面通过登陆界面中登录、注册按钮介绍接口、监听器使用方法
首先创建登陆界面窗体,往里面放好组件

package ui;

import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JCheckBox;

public class login {

	public void showlogin(){
		JFrame loginFrame=new JFrame();
		loginFrame.setTitle("登录");
		loginFrame.setSize(500, 550);
		FlowLayout layout=new FlowLayout();
		loginFrame.setLayout(layout);
		
		ImageIcon icon=new ImageIcon("C:\\Users\\董润泽\\Desktop\\u=471759052,2414073488&fm=27&gp=0.jpg");
		JLabel iconLabel=new JLabel(icon);
		loginFrame.add(iconLabel);
				
		JLabel accountLabel=new JLabel("账号");
		loginFrame.add(accountLabel);
		JTextField nameInput=new JTextField();
		Dimension inputSize=new Dimension(400,35);
		nameInput.setPreferredSize(inputSize);
		loginFrame.add(nameInput);
		
		JLabel blanklabel=new JLabel("       ");
		loginFrame.add(blanklabel);

		JLabel passwordLabel=new JLabel("密码");
		loginFrame.add(passwordLabel);
		JTextField nameInput2=new JTextField();
		Dimension inputSize2=new Dimension(400,35);
		nameInput2.setPreferredSize(inputSize2);
		loginFrame.add(nameInput2);
		
		JLabel blanklabel4=new JLabel("       ");
		loginFrame.add(blanklabel4);
		
		JCheckBox autologin=new JCheckBox("自动登录");
		loginFrame.add(autologin);
		//设置自动登录复选框大小
		Dimension checkSize = new Dimension(200, 30);
		autologin.setPreferredSize(checkSize);
		
		
		JCheckBox remcord=new JCheckBox("记住密码");
		loginFrame.add(remcord);
		
		JButton loginButton=new JButton("登录");
		loginFrame.add(loginButton);
		
		JButton registerButton=new JButton("注册");
		loginFrame.add(registerButton);
		//
		注意,在此处对登录和注册按钮加监听器
		/
		loginFrame.setVisible(true);
		
		
	}
	public static void main(String[] args){
		login ui=new login();
		ui.showlogin();
	}
}

使用监听器的目的:让用户点击登录按钮时实现相应的目的。
然后在相应的组件后面插入接口

	//插入接口
	LoginListener loginL = new LoginListener();
	loginButton.addActionListener(loginL); 
	registerButton.addActionListener(loginL);
		// 密码
		loginL.input=nameInput2;	
		//账号
		loginL.input2=nameInput;

接口的使用注意事项
接口不能创建对象,需要接口的对象,则需要创建一个类,实现接口。
关键字: implements
格式: public class 类名 implements 接口名{ }
类实现接口必须重写接口的所有方法。

最后写入相应的方法体

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;

public class LoginListener implements ActionListener{

	//输入框对象
	JTextField input;	
	JTextField input2;
	String Admin = "123";
	String secret = "123456";
//按钮点击自动执行
	public void actionPerformed(ActionEvent e){
		String action = e.getActionCommand();
		//获取输入框内容
		
		String name=input2.getText();
		String password=input.getText();
		
		
		 if("注册".equals(action) ){
			Admin=name;
			secret=password;
			System.out.println("注册成功");
		 }
		if("登录".equals(action)){

			if(secret.equals(password) && Admin.equals(name))
			{
				System.out.println("登陆成功");
			}
			else{
				System.out.println("登陆失败");
			}
		}		
	}
}

//个人感觉,本文写得特别乱,有些东西可能是错的,希望大牛帮忙评论指正,感激不尽。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值