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;
}
}
分享到:
相关推荐
在这个例子中,我们模拟了AWT(Abstract Window Toolkit)中的Button组件,来演示观察者模式的应用。 在Java AWT库中,Button类是一个可以被用户点击的图形界面元素。当用户点击Button时,它会触发一个事件,这个...
7. **代码组织与设计模式**:查看源码的结构,理解类之间的关系,可能会涉及单例模式、观察者模式等设计模式的应用。 8. **调试与优化**:通过阅读源码,学习如何调试Applet程序,以及如何优化性能,比如减少不必要...
Observer模式在这里的应用表现为:事件源(被观察者)持有一个或多个监听器(观察者)的列表,当事件发生时,事件源会遍历这个列表,调用每个监听器的相应方法来传播事件。 下面,我们将深入探讨Observer模式的核心...
- 设计模式如单例模式(用于服务器实例)、观察者模式(用于事件通知)可能也会被应用。 综上所述,"javaswing 模拟QQ聊天"项目涵盖了Java Swing GUI编程、多线程通信、Socket网络编程等多个核心知识点,对于学习...
这种技术基于观察者模式,其中组件(被观察者)注册一个或多个监听器(观察者),当发生特定事件时,组件会通知所有注册的监听器。 #### 3.2 主要类型 - **ActionListener**: 用于响应按钮点击等动作事件。 - **...
5. **设计模式**:考虑到交通灯可能有多个方向,我们可以使用工厂模式来创建不同方向的交通灯对象,使用观察者模式来通知其他系统组件交通灯状态的改变。 6. **代码组织**:良好的代码组织可以帮助我们更好地理解和...
- 观察者模式:用于更新显示结果,当计算完成后,计算器的显示部分作为观察者得到通知。 通过学习和分析这个 Java 计算器项目,开发者不仅可以巩固 Java 编程基础,还能了解 GUI 编程、事件处理和异常处理等实际...
例如,工厂模式可以用于创建新的线程,观察者模式可以用于实时更新客户端的消息状态。 6. **用户界面(UI)**:虽然题目没有明确提到,但大多数聊天程序会有用户界面。在Java中,可以使用`javax.swing`或`java.awt`...
8. **设计模式**:为了使代码结构清晰,开发者可能会应用到设计模式,如单例模式(管理全局资源,如游戏配置),工厂模式(创建游戏对象),或者观察者模式(用于游戏状态的更新通知)。 9. **异常处理**:良好的...
- **设计模式:** 单例模式、工厂模式、观察者模式等经典设计模式的应用。 - **性能优化:** 如何编写高效且易于维护的代码。 - **单元测试:** JUnit等工具的使用,保证代码质量。 #### 三、学习路径建议 1. *...
- Java事件处理模型是基于观察者模式的,可以通过添加监听器来响应用户操作。例如,添加一个ActionListener到按钮上,当用户点击按钮时,会触发相应的事件处理方法。 6. **文件操作**: - 要保存截图,需要使用`...
在创建这样的图形应用程序时,开发者可能应用了设计模式,如单例模式(确保时钟类只有一个实例)或观察者模式(用于监听时间变化)。 10. **测试与调试**: 开发过程中,开发者会进行单元测试和集成测试,以确保...
2. **ProgressTask**:实现了 `Runnable` 接口,用于模拟后台任务并在其中更新进度。 ##### 主类 ProgressBar ```java import java.awt.event.*; import javax.swing.*; public class ProgressBar { public ...
- **观察者模式(Observer Pattern)**:在滚动文字示例中,可能需要一个观察者来监听线程状态的变化,当状态改变时更新UI。 - **生产者-消费者模式(Producer-Consumer Pattern)**:如果滚动文字的生成和显示是...
12. **设计模式**:为了使代码结构清晰,书中可能还会讲解一些常见的设计模式,如工厂模式、单例模式和观察者模式等,这些在游戏开发中非常实用。 通过《Developing Games in Java》这本书,开发者可以掌握从基础到...
- 高质量的代码通常会遵循良好的设计原则,如单一职责原则、开闭原则等,也可能使用设计模式如观察者模式来处理事件。 10. **调试与测试**: - 开发过程中,调试和测试是非常重要的步骤,确保火焰效果按预期工作...
- **设计模式**:项目可能使用了如单例模式(用于管理浏览器实例)、观察者模式(更新UI)等设计模式。 - **版本控制**:源码可能使用Git等版本控制系统管理,便于协作和版本迭代。 7. **持续改进**: - **性能...
9. **设计模式**:适配器、工厂、观察者等设计模式可能在项目中被应用,以提高代码的可维护性和可扩展性。 10. **性能分析**:通过JVisualVM、JProfiler等工具,可以对模拟过程的性能进行监控和优化。 以上是基于...
- **GOF(Gamma, Helm, Johnson, Vlissides)**:这四位作者合著了《设计模式:可复用面向对象软件的基础》,书中详细介绍了23种经典设计模式,如单例模式、工厂模式、观察者模式等,这些模式为软件开发者提供了...
9. **设计模式**:为了实现可维护和可扩展的代码,开发者可能会应用各种设计模式,如单例模式(模拟全局资源)、工厂模式(创建对象)和观察者模式(事件监听)。 10. **异常处理**:在系统级编程中,错误处理至关...