`
darrendu
  • 浏览: 196985 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

02观察者模式--模拟Awt(二)

 
阅读更多

1.public class AWTSimulation {

	public static void main(String[] args) {
		Buttton b = new Buttton();
		
		
		b.addActionListener(new MyActionListener());
		b.addActionListener(new MyActionListener2());
		
		b.buttonPressed();
		
	}

}

/**
 * 被观察者
 * @author Administrator
 *
 */
class Buttton{
	List<ActionListener> actionListeners = new ArrayList<ActionListener>();
	
	public void buttonPressed(){
		ActionEvent actionEvent = new ActionEvent(System.currentTimeMillis(),this);
		
		for(ActionListener al : actionListeners){
			al.actionPerformed(actionEvent);
		}
		
		
	}
	
	public void addActionListener(ActionListener actionListener){
		actionListeners.add(actionListener);
	}
	
	
}

/**
 * 观察者
 * @author Administrator
 *
 */
interface ActionListener{
	
	public void actionPerformed(ActionEvent actionEvent);
	
}

class MyActionListener implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent actionEvent) {
		System.out.println("actionPerformed 1.....");
	}
}

class MyActionListener2 implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent actionEvent) {
		System.out.println("actionPerformed 2.....");
	}
}

class ActionEvent{
	//事件发生时间
	long when;
	
	//事件源对象
	Object source;

	public ActionEvent(long when,Object source) {
		this.source = source;
		this.when = when;
	}
	
	public long getWhen(){
		return when;
	}
	
	public Object getSource(){
		return source;
	}
	
	
	
	
	
}
 
分享到:
评论

相关推荐

    Java观察者模式-模拟Awt Button

    在这个例子中,我们模拟了AWT(Abstract Window Toolkit)中的Button组件,来演示观察者模式的应用。 在Java AWT库中,Button类是一个可以被用户点击的图形界面元素。当用户点击Button时,它会触发一个事件,这个...

    基于Java的实例开发源码-Applet钢琴模拟程序源码.zip

    7. **代码组织与设计模式**:查看源码的结构,理解类之间的关系,可能会涉及单例模式、观察者模式等设计模式的应用。 8. **调试与优化**:通过阅读源码,学习如何调试Applet程序,以及如何优化性能,比如减少不必要...

    OOAD.rar_设计模式 例

    Observer模式在这里的应用表现为:事件源(被观察者)持有一个或多个监听器(观察者)的列表,当事件发生时,事件源会遍历这个列表,调用每个监听器的相应方法来传播事件。 下面,我们将深入探讨Observer模式的核心...

    javaswing 模拟QQ聊天

    - 设计模式如单例模式(用于服务器实例)、观察者模式(用于事件通知)可能也会被应用。 综上所述,"javaswing 模拟QQ聊天"项目涵盖了Java Swing GUI编程、多线程通信、Socket网络编程等多个核心知识点,对于学习...

    javaATM柜员机模拟程序.doc

    这种技术基于观察者模式,其中组件(被观察者)注册一个或多个监听器(观察者),当发生特定事件时,组件会通知所有注册的监听器。 #### 3.2 主要类型 - **ActionListener**: 用于响应按钮点击等动作事件。 - **...

    模拟交通灯

    5. **设计模式**:考虑到交通灯可能有多个方向,我们可以使用工厂模式来创建不同方向的交通灯对象,使用观察者模式来通知其他系统组件交通灯状态的改变。 6. **代码组织**:良好的代码组织可以帮助我们更好地理解和...

    java编写的计算器,供需要的同学学习参考

    - 观察者模式:用于更新显示结果,当计算完成后,计算器的显示部分作为观察者得到通知。 通过学习和分析这个 Java 计算器项目,开发者不仅可以巩固 Java 编程基础,还能了解 GUI 编程、事件处理和异常处理等实际...

    java模拟小聊天程序

    例如,工厂模式可以用于创建新的线程,观察者模式可以用于实时更新客户端的消息状态。 6. **用户界面(UI)**:虽然题目没有明确提到,但大多数聊天程序会有用户界面。在Java中,可以使用`javax.swing`或`java.awt`...

    java 模拟坦克游戏,非常适合初学者

    8. **设计模式**:为了使代码结构清晰,开发者可能会应用到设计模式,如单例模式(管理全局资源,如游戏配置),工厂模式(创建游戏对象),或者观察者模式(用于游戏状态的更新通知)。 9. **异常处理**:良好的...

    Core Java应用程序设计教程2

    - **设计模式:** 单例模式、工厂模式、观察者模式等经典设计模式的应用。 - **性能优化:** 如何编写高效且易于维护的代码。 - **单元测试:** JUnit等工具的使用,保证代码质量。 #### 三、学习路径建议 1. *...

    java 写的截图工具

    - Java事件处理模型是基于观察者模式的,可以通过添加监听器来响应用户操作。例如,添加一个ActionListener到按钮上,当用户点击按钮时,会触发相应的事件处理方法。 6. **文件操作**: - 要保存截图,需要使用`...

    java图形时钟基于自带多媒体编程

    在创建这样的图形应用程序时,开发者可能应用了设计模式,如单例模式(确保时钟类只有一个实例)或观察者模式(用于监听时间变化)。 10. **测试与调试**: 开发过程中,开发者会进行单元测试和集成测试,以确保...

    java实现监视任务的进度条

    2. **ProgressTask**:实现了 `Runnable` 接口,用于模拟后台任务并在其中更新进度。 ##### 主类 ProgressBar ```java import java.awt.event.*; import javax.swing.*; public class ProgressBar { public ...

    设计滚动字演示线程状态及改变方法

    - **观察者模式(Observer Pattern)**:在滚动文字示例中,可能需要一个观察者来监听线程状态的变化,当状态改变时更新UI。 - **生产者-消费者模式(Producer-Consumer Pattern)**:如果滚动文字的生成和显示是...

    java游戏开发--书

    12. **设计模式**:为了使代码结构清晰,书中可能还会讲解一些常见的设计模式,如工厂模式、单例模式和观察者模式等,这些在游戏开发中非常实用。 通过《Developing Games in Java》这本书,开发者可以掌握从基础到...

    Java绘制图片火焰效果.7z

    - 高质量的代码通常会遵循良好的设计原则,如单一职责原则、开闭原则等,也可能使用设计模式如观察者模式来处理事件。 10. **调试与测试**: - 开发过程中,调试和测试是非常重要的步骤,确保火焰效果按预期工作...

    JAVA仿IE浏览器源码

    - **设计模式**:项目可能使用了如单例模式(用于管理浏览器实例)、观察者模式(更新UI)等设计模式。 - **版本控制**:源码可能使用Git等版本控制系统管理,便于协作和版本迭代。 7. **持续改进**: - **性能...

    jsdj.rar_Simulation

    9. **设计模式**:适配器、工厂、观察者等设计模式可能在项目中被应用,以提高代码的可维护性和可扩展性。 10. **性能分析**:通过JVisualVM、JProfiler等工具,可以对模拟过程的性能进行监控和优化。 以上是基于...

    java程序员的标准

    - **GOF(Gamma, Helm, Johnson, Vlissides)**:这四位作者合著了《设计模式:可复用面向对象软件的基础》,书中详细介绍了23种经典设计模式,如单例模式、工厂模式、观察者模式等,这些模式为软件开发者提供了...

    JAVA osworks 项目源代码

    9. **设计模式**:为了实现可维护和可扩展的代码,开发者可能会应用各种设计模式,如单例模式(模拟全局资源)、工厂模式(创建对象)和观察者模式(事件监听)。 10. **异常处理**:在系统级编程中,错误处理至关...

Global site tag (gtag.js) - Google Analytics