java中接口和事件监听器的深入理解

 更新时间:2019年12月29日 16:35:58   作者:MrChase  
这篇文章主要给大家介绍了关于java中接口和事件监听器的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用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);
 
 
 //加入接口类
 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);
  
 }
  
 
 }
 }

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • 一篇文章带你学习JAVA MyBatis底层原理

    一篇文章带你学习JAVA MyBatis底层原理

    近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,本文就详细总结了MyBatis工作原理,,需要的朋友可以参考下
    2021-09-09
  • JAVA项目常用异常处理汇总

    JAVA项目常用异常处理汇总

    这篇文章主要介绍了JAVA项目常用异常处理汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 详解使用Spring Boot开发Restful程序

    详解使用Spring Boot开发Restful程序

    本篇文章主要介绍了详解使用Spring Boot开发Restful程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 完整详解Java开发学习路线指南

    完整详解Java开发学习路线指南

    在本篇文章里小编给大家整理的是一篇关于Java开发学习路线以及期中的主要知识点内容,有兴趣的朋友么可以学习下。
    2022-11-11
  • Spring Event观察者模式事件监听详解

    Spring Event观察者模式事件监听详解

    这篇文章主要介绍了Java Spring Event事件监听详情解析,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • SSH框架网上商城项目第20战之在线支付平台

    SSH框架网上商城项目第20战之在线支付平台

    这篇文章主要为大家详细介绍了SSH框架网上商城项目第20战之在线支付平台,关于第三方支付的内容从本文开始,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Spring中的@ConditionalOnProperty注解使用详解

    Spring中的@ConditionalOnProperty注解使用详解

    这篇文章主要介绍了Spring中的@ConditionalOnProperty注解使用详解,在 spring boot 中有时候需要控制配置类是否生效,可以使用 @ConditionalOnProperty 注解来控制 @Configuration 是否生效,需要的朋友可以参考下
    2024-01-01
  • SpringBoot中的@FeignClient注解使用

    SpringBoot中的@FeignClient注解使用

    文章主要介绍了SpringCloud中的@FeignClient注解的使用及其参数详解,包括value/name、url、path、configuration、fallback/fallbackFactory、contextId等,通过@FeignClient注解,可以方便地声明一个REST客户端,并定义与目标服务通信的接口
    2024-11-11
  • Java基础之Unsafe内存操作不安全类详解

    Java基础之Unsafe内存操作不安全类详解

    Java是面向对象语言,在使用Java编程时,大多数情况下都不会直接操作内存,而且Java也不提倡直接操作内存,但是Java中到底有没有可以直接操作内存的工具类呢?有!Java中提供Unsafe类可以用来来直接操作内存,文中详细介绍了Unsafe内存操作不安全类,需要的朋友可以参考下
    2021-06-06
  • java JSON解析库Alibaba Fastjson用法详解

    java JSON解析库Alibaba Fastjson用法详解

    这篇文章主要介绍了java JSON解析库Alibaba Fastjson用法,结合实例形式详细分析了java JSON解析库Alibaba Fastjson的基本功能、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04

最新评论