理解java中接口与事件监听器

一:接口
接口在我们生活中无处不在,通过一个usb接口,我们可以通过u盘传输数据,这个接口是被定义过的,只有指定的类型能够使用这个接口,且通过这个接口我们传输的数据不会被破坏。
而在java中接口作用类似,定义一个具有特定特点的接口,在合适的地方引用它,执行所对应的功能,这样能够实现代码的分离。
下面我们来看一下接口的定义:

			关键字:interface
			格式:public interface 接口名{	}

接口的属性:

			[public static final]属性类型 属性名=属性值;
			static:静态的,修饰的内容可以通过类名或接口名直接访问。
			final:不可改变的,修饰属性,则属性必须初始化。
			[	]里的内容可以省略

接口的方法:

			[public abstract]方法返回值类型 方法名(参数类型 参数名)
			abstract:抽象的,修饰方法,则方法不能有方法体。
			[	]中内容可以省略

接口的使用:
接口不能创建对象,需要接口类型的对象则需要创建一个类,从而实现接口

			关键字:implements
			格式:public class 类名 implements 接口名{	}
			**注意:在类中实现接口时,必须实现接口中所有的方法**

总结来说,接口相当于制定了一种规则,只有符合这种规则了才能进入相应的接口。
二:事件监听机制
想象一下,比如在生活中,有一个摄像头在监视着小明,监督他好好学习,如若发现他在做别的事情则会发出警告提示让他继续学习,而在java中原理也是一样。
给事件源组件添加事件监听器,当事件源组件上发生相应类型的事件时,则自动的调用监听器中的内容。
在电脑上常见的事件类型有三种

				鼠标事件:用鼠标操作组件(鼠标的移动,点击,松开)
				键盘事件:用键盘操作组件(按动键盘的按键)
				动作事件:包含鼠标点击按钮,键盘确认等。

事件源组件:事件发生所在的组件,比如在一个创建好的画图板上。
事件监听器:java中为每一种类型的事件都提供了一个对应类型的事件监听器。

			鼠标事件监听器:MouseListener
			键盘事件监听器:KeyListener
			动作事件监听器:ActionListener

事件监听器的实现:

		第一步:确定事件源组件
					例如一个按钮
		第二步:确定事件类型
					点击按钮则为动作事件
		第三步:
					创建一个监听器类,实现对应类型的监听器接口
		第四步,在源程序创建监听器对象,给事件源组件添加事件监听器。

下面我们看一个登陆界面的实例
这一段是建立一个登陆界面

public class UI {
	/**
	 * 
	 */
	public void showIU(){
		//建立新界面
		JFrame frame=new JFrame();
		frame.setSize(600, 900);
		//用户点击关闭窗口时关闭界面
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//流式布局
		FlowLayout layout=new FlowLayout();
		frame.setLayout(layout);
		//插入账号文本框
		JTextField register=new JTextField(30);
		frame.add(register);
		//标签1
		JLabel label1=new JLabel("注册账号");
		frame.add(label1);
		//密码
		JPasswordField word=new JPasswordField(30);
		frame.add(word);
		//标签2
		JLabel label2= new JLabel("找回密码");
		frame.add(label2);
		
		JCheckBox checkbox=new JCheckBox("记住密码 ");
		frame.add(checkbox);
		//设置复选框大小
		Dimension check =new Dimension(200,35);
		checkbox.setPreferredSize(check);
		//添加登录按钮
		JButton butt = new JButton();
		frame.add(butt);
		
	
		//加入接口类(鼠标监听器)
		lisener lisen=new lisener();
		//给按钮添加监听器
		butt.addActionListener(lisen);
		//让监听器的文本框和处理的文本框对应
		lisen.nameinput=register;
		lisen.passinput=word;
		//让监听器的框与此相同
		lisen.jiemian=frame;
		
		word.addActionListener(lisen);
		//加入接口(动作监听器)
		Listener2 lisen1=new Listener2();
		//添加监听器
		word.addKeyListener(lisen1);
		//对应文本框和密码框
		lisen1.name1=register;
		lisen1.pass1=word;
		lisen1.frame=frame;
		
		//设置界面可见
		frame.setVisible(true);
		
	}
	public static void main(String[] args){
		UI ui=new UI();
		ui.showIU();
	}
}

在这里插入图片描述这是我们建立好的登陆界面

我们从中建立了两个接口,两个动作监听器分别监听按钮是否点击和是否按键盘上的按键,从此出现相应结果。

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

import javax.swing.JDialog;
import javax.swing.JTextField;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
public class lisener implements ActionListener{
	JTextField nameinput;
	JTextField passinput;
	JFrame jiemian;
	public void actionPerformed(ActionEvent e){
		System.out.println("鼠标点击了");
		String name=nameinput.getText();
		String password=passinput.getText();
		if(name.equals("majunlong")&&password.equals("12345678")){
			System.out.println("登陆成功");
			jiemian.dispose();
		}
			
			
		else{
			System.out.println("登陆失败");
			JOptionPane pane=new JOptionPane();
			JOptionPane.showMessageDialog(null, "登陆失败", "警告", JOptionPane.ERROR_MESSAGE);
			
		}
			
		
	}

}

这是一个鼠标监听器,当按钮被点击时发出提示框登陆成功或失败。

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Listener2 implements  KeyListener{
	JTextField name1;
	JFrame frame;
	JTextField pass1;

	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
		
		
	}

	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
		System.out.println("键盘被按下");
		String name=name1.getText();
		String password=pass1.getText();
		if(name.equals("majunlong")&&password.equals("12345678")){
			System.out.println("登陆成功");
			frame.dispose();
		}
			
			
		else{
			System.out.println("登陆失败");
			JOptionPane pane=new JOptionPane();
			
			JOptionPane.showMessageDialog(null, "登陆失败", "警告", JOptionPane.ERROR_MESSAGE);
			
		}
			
		
	}
	}

键盘监听器,在输入密码之后按下回车,获得相应提示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值