`
_jia_shun
  • 浏览: 27189 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

接口和事件机制

 
阅读更多

1.接口定义:

    关键字是:interface

    定义格式:

             public interface 接口名 extends 接口,... {

//定义常量      注意:常量名的每一个字母都要大写,类也是一样!

public static final 数据类型 常量名 = 值;

                (三个写任意一个或者两个三个都行)

static final 数据类型 常量名 = 值;

数据类型 常量名 = 值;

 

//定义抽象方法

public 返回值数据类型 方法名(数据类型 参数名,...);

public abstract 返回值数据类型 方法名(数据类型 参数名,...);

返回值数据类型 方法名(数据类型 参数名,...);

    }

            注:接口是一种特殊的类!

                   接口中只有一种访问修饰符,就是public

                   接口和普通类的区别:接口中方法全部抽象方法,定义关键字不同,接口可以继承多个

                                                      接口,接口被集成后方法要全部实现,接口不能实例化对象,

2.接口的实现:

        实现接口的关键字:implements

实现格式:

public class 类名 extends 类或者抽象类 implements 接口名,... {

 

}

注意:

1.必须要实现接口中所有的抽象方法。

2.类去实现接口实际上就让类和接口拥有继承关系。

 

接口作用:

1.接口就是丰富类的继承。

2.事件机制中要使用接口。

3.团队开发

   例子:

package 接口;


/*画圆的类的实现*/
public class ImpOval implements NetJavaShape {
	
	public String doWork(){
		String a="啦啦啦!";
		return a ;
	}
	public void draw(int x1 ,int y1,int x2,int y2){
		System.out.print("画圆形!");
	 
		//接口中的属性定义可以作为常量使用
		System.out.println("出品人:"+NetJavaShape.compName);
	}
	
	public String doOther(){
		String s="这是我实现OtherShape接口中的方法";
		return s ;
	}
	
	public static void main(String[] args){
		NetJavaShape shape=new ImpOval();
		int x1=10,y1=12 ;
		int x2=20,y2=20 ;
		shape.draw(x1,y1,x2,y2) ;
		
		//作为OtherShape
		OtherShape os=new ImpOval() ;
		OtherShape_1 os_1=new ImpOval(); 
		System.out.println(os.doOther());
		System.out.println(os_1.doWork());
	}
}



package 接口;

/*形状接口的定义*/
public interface NetJavaShape extends OtherShape,OtherShape_1 {

	public static final String compName="溫家顺" ;
	
	//接口中定义的方法,
	public void draw(int x1 , int y1 , int x2 ,int y2);
}



package 接口;

public interface OtherShape_1 {
	String doOther() ;
	String doWork() ;
}



package 接口;

public interface OtherShape {

	String doOther() ;
}


 

3.抽象类的实现与继承

抽象类介于类和接口之间的一种特殊类。

定义的关键字:abstract class

语法格式:

public abstract class 抽象类名 extends 类或者抽象类 implements 接口,... {

//定义类中所有的属性和方法(普通方法和构造方法)

//定义接口中的常量和抽象方法。

访问修饰符 abstract 返回值数据类型 方法名(数据类型 参数名,...);

}

注意:抽象类不能实例化对象。

 

 

事件机制三部分:事件源;事件监听器方法;事件处理类

 

4.事件源:可以成为事件源对象的是:所有的图形界面组件对象。

         你的动作发生在哪一个组件上,那么该组件对象就是事件源对象

5.事件监听器方法://动作监听器方法(输入框就是回车操作,按钮上就是鼠标单击)

                        addActionListener(ActionListener al);

                        //鼠标监听器方法

                        addMouseListener(MouseListener ml);

                        //鼠标移动监听器方法

                        addMouseMotionListener(MouseMotionListener mml);

                        //键盘监听器方法

                        addKeyListener(KeyListener kl);

6.事件处理类:定义类实现监听器接口。

例:

package 事件机制;

import java.awt.FlowLayout;
import java.awt.event.ActionListener;

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

public class JFrameTest {

	public static void main(String[] args) {
    JFrameTest jt = new JFrameTest() ;
    jt.showFrame() ;
	}
	public void showFrame(){
		JFrame jf =  new JFrame() ;
		jf.setTitle("界面");
		//创建流式布局管理器对象
		
		JLabel la_name=new JLabel("名字:") ;
		JTextField jta_name=new JTextField(10) ;
		JButton bu_login = new JButton ("登录") ;
		jf.add(la_name);
		jf.add(jta_name);
		jf.add(bu_login);
		
		FlowLayout f1 = new FlowLayout();
		jf.setLayout(f1);

		//设置窗体属性
		jf.setSize(500, 400); //窗口大小
		jf.setDefaultCloseOperation(3);//窗口可关闭
		jf.setLocale(null); //窗口位置
	   
				
				//窗体可见
				jf.setVisible(true);
		
		//窗体可见
		jf.setVisible(true);
		
		//创建一个监听器对象
		MyMouseListener m1 = new MyMouseListener();
		//监听器加给按钮
		bu_login.addActionListener((ActionListener) m1);
		
	}

}


package 事件机制;

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


public class MyMouseListener implements ActionListener {

	//重写接口中的所有函数
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
		//得到事件源对象
		Object sour = e.getSource() ;
		
		//如果事件源是一个按钮:
		if(sour  instanceof JButton){
		JButton bu =  (JButton) sour ;
			String lab = bu.getText() ;
			System.out.println("按下了一个按钮"+lab);
			//重新设一下按钮上的文字
			//“我被按了一下!”
		}
		else{
			System.out.println("其他组件发生的事儿!");
		}
	}
	
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java中的事件机制

    总的来说,Java的事件机制和观察者模式为对象间的通信提供了一种解耦的方式,使得系统更加模块化和可扩展。无论是在图形用户界面还是后台系统中,都能找到其广泛的应用。理解并熟练运用这一机制,对于提高Java编程...

    JAVA事件处理机制

    总的来说,Java事件处理机制是构建交互式应用程序的关键,它通过事件源、事件和监听器的协作,实现了对用户行为的响应。事件监听器适配器进一步简化了这一过程,让开发者可以更加专注地处理应用程序的核心逻辑。理解...

    Java事件机制例子

    Java事件机制基于观察者模式,其中事件源(如按钮)会发布事件,而事件监听器则订阅这些事件并执行相应的操作。 事件、事件监听器和事件源是Java事件处理的三个核心概念。事件是用户或系统发生的某种情况,如鼠标...

    java事件处理机制Demo

    在"LinkEvent_p"这个压缩包中,可能包含了一个演示如何使用事件处理机制和观察者模式的代码示例。可能的代码结构包括: 1. 定义一个事件源类,该类通常会继承或实现`Observable`类,并在其内部状态改变时调用`...

    java事件处理机制详解

    Java事件处理机制是一种用于在组件之间传递和处理事件的机制,它是GUI编程中不可或缺的一部分。在Java中,事件处理涉及到三个关键角色:事件对象(Event Object)、事件源(Event Source)和事件监听器(Event ...

    JavaGUI事件处理机制

    Java GUI事件处理机制是Java应用程序开发中的重要组成部分,主要用于响应用户在图形用户界面中的各种操作。这一机制采用了委托事件模型,使得程序结构清晰,易于扩展。下面将详细讲解这一机制的关键概念、工作流程...

    使用Spring事件机制实现异步的方法

    * 事件机制需要进行适当的测试和调试,确保事件的正确发布和处理。 使用Spring事件机制可以实现松散耦合的设计理念,提高代码的可维护性和可扩展性。但是,需要适当地配置和编码,进行适当的测试和调试。

    java事件处理机制ppt

    这样的事件处理机制使得Java GUI程序具有良好的可扩展性和灵活性,可以根据需要添加或移除监听器,以应对不同的用户交互需求。通过学习和掌握Java事件处理机制,开发者可以创建更富交互性的应用程序,提升用户体验。

    java事件处理机制

    在Java 1.1中引入的事件处理模型,是基于“监听器”(Listener)和“事件”(Event)的概念,这一机制至今仍广泛应用于现代Java应用中。下面将详细介绍Java事件处理机制以及如何处理鼠标和键盘事件,以及事件适配器...

    android事件分发机制

    在Android系统中,事件分发机制是用户与应用交互的核心环节,主要处理按键事件和屏幕触摸事件。本文将深入探讨Android事件分发机制,特别是触摸事件(Touch事件)的处理流程。 首先,我们要理解Android事件的产生...

    Java语言提供的一种接口(interface)机制

    总的来说,Java 的接口机制增强了程序的模块化,提高了代码的复用性和灵活性。通过接口,开发者可以定义一套标准的行为规范,而具体的实现可以由不同的类根据需要进行,这种分离关注点的设计思想是面向对象编程的...

    Flex4.5事件机制

    Flex事件处理依赖于ActionScript 3.0的事件机制,但在Flex层面提供了更直观的接口来处理这些事件。 事件流是ActionScript 3.0引入的一个重要概念,它与显示列表紧密相关。事件流描述了事件对象如何在显示列表中的...

    JAVA事件处理机制.ppt

    Java事件处理机制是Java开发GUI(图形用户界面)应用程序时不可或缺的部分,它使得程序能够响应用户的操作...通过理解并熟练运用事件、事件源、事件处理器、监听器接口和监听器适配器,可以构建出丰富的用户交互体验。

    linux 内核网络接口通知链机制分析

    为了保证网络接口的高效、稳定运行,内核采用了一种称为“通知链”(Notification Chain)的机制来处理网络接口的动态变化,如接口的开启(UP)和关闭(DOWN),以及以太网口的载波监听状态。这种机制允许内核在接口...

    Java事件处理机制教学方法探讨.pdf

    为了让初学者更好理解Java事件处理机制及其编程技术,黄增喜、王晓明和于春三位作者提出了一个基于核心概念解析、事件处理流程分析以及角色分工清晰化的教学思路,并给出了相应的教学方法。以下是对这些知识点的详细...

    系统声音控制(VC)

    总结来说,“系统声音控制(VC)”涉及了VC++编程和DirectX Audio技术的结合,通过使用DirectShow库中的接口和事件机制,可以实现对Windows系统音频设备的全面控制。通过分析和学习CodeProject提供的示例代码,...

    Android事件分发机制总结Demo

    在Android开发中,事件分发机制是理解和优化用户交互界面不可或缺的部分。本文将深入探讨“Android事件分发机制总结Demo”,结合代码实例MyTouchEventDemo,帮助开发者清晰理解这一核心概念。 事件分发机制主要涉及...

    Android 事件处理机制

    在Android系统中,事件处理机制是用户界面交互的关键部分,它允许应用程序响应用户的输入操作,如点击、滑动等。Android事件处理主要包括两种方式:基于监听器(Listener)的事件处理和基于消息队列(Message Queue...

    C#设计模式(包括常用的软件设计模式)

    C#中的`System.ComponentModel.INotifyPropertyChanged`接口和事件机制就是观察者模式的具体应用。 八、策略模式 策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。在C#中,通过接口和实现类...

Global site tag (gtag.js) - Google Analytics