`
blues1021
  • 浏览: 141422 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Java2事件处理模型的解析和注意

阅读更多

/*<pre>伪源代码*/
DemoFlowLayout类先用主main方法调用了类的构造函数,启动进程。
声明了控件变量。
public DemoFlowLayout(){
//set title
setTitle("FlowLayout Demo");
//Create container and layout
Container contentPane=getContentPane();
FlowLayout layout=new FlowLayout();
contentPane.setLayout(layout);
/*类似I/O中聚合关系 用FileInputStream做参数传递给ObjectInputStream后,objectInputStream.readObject();
此处也为contentPane嵌套layout后,contentPane聚合了layout对象,作为一个整体实现
.add controls
*/

//add controls to container
contentPane.add(new JLable("Frahrenheit");
contentPane.add(new JTextField("212",6);
contentPane.add(new JLable("Celsius");
contentPane.add(new JTextField("100",6);
JButton btFtoC=new JButton("F to C");
JButton btCtoF=new JButotn("C to F");
contentPane.add(btFtoC);
contentPane.add(btCtoF);
btFtoC.addActionListener(new FtoCListener());   //解析的地方
btCtoF.addActionListener(new CtoFListener());
addWindowListener(new MyWindowAdapter());
}
private class FtoCListener implements ActionListener{
public void actionPerformed(ActionEvent event){
String inStr=tfFahrenheit.getText().trim();
double f=Double.parseDouble(inStr);
thermo.setFahrenheit(f);
String outStr=Format.justify('l',thermo.getCellsius(),0,2);
tfCelsius.setText(outStr);
}
}
private class MyWindowAdapter extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(1);
}
}

/*对addActionListener 官方文档解释:
在JButton父类的AbstractButton类中,
public void addActionListener(ActionListener l)
Adds an ActionListener to the button.
Parameters:
l - the ActionListener to be added
*/

/*对于ActionListener类只有这个解释:
   actionPerformed(ActionEvent e)
          Invoked when an action occurs.
而其父类解释:public interface EventListener
A tagging interface that all event listener interfaces must extend.
对ActionEvent类:ACTION_PERFORMED 字段
          This event id indicates that a meaningful action occured
也没有得到更多的信息
*/

一、解析重点:
/*    借鉴MFC消息机制,事件发生会传递一些整型的消息标识到父类消息泵中,用宏列表指明处理的函数。
      这里也应该JButton父类的AbstractButton类定义的addActionListener()use-a关联关系 EventListener对象,EventListener 中定义的事件发生触发事件(消息)标识 parameter1,因为EventListener在控件ID里面所以也取得外部类的控件ID parameter2,两参数一起传递给addActionListener()方法,addActionListener()方法利用定义的简单消息泵 指明用相应的actionPerformed方法处理。
*/

二、注意:
actionPerform(ActionEvent e)方法名是不可变的,在里面写好要处理的或给用户交互的信息即可。
windowClosing(WindowEvent e)也是同理。
addWindowListener(myWindowAdapter);不用传递组件ID,因为传递的是当前JFrame或JDialog或者Frame、Dialog类对象的引用ID。
this.setSize(w1,h1);
this.setVisible(true);也是对当前Container类。

分享到:
评论

相关推荐

    事件驱动模型实例详解(Java篇)

    ### 事件驱动模型实例详解(Java篇) #### 1. 事件驱动模型概念解析 事件驱动模型是现代软件开发中一种关键的编程模式,尤其在图形用户界面(GUI)编程中占据核心地位。该模型围绕三个核心概念构建:事件源、侦听...

    Java 开发中事件驱动模型的实例详解

    在事件驱动模型中,有三个关键组件:事件源、事件和事件处理器。 1. **事件源(Event Source)**:这是产生事件的对象,如用户界面中的按钮、文本框等。 2. **事件(Event)**:由事件源产生的信号,表示某件事情的...

    Java事件处理框架

    Java引入了一种更高级的事件处理模型,旨在提高代码的可维护性和降低组件间的耦合度,使其更接近于网站开发的模式。 Java事件处理主要基于观察者模式(Observer Pattern),在这种模式中,事件源(通常是GUI组件,...

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

    在Java编程语言中,事件处理机制是...通过这样的教学方法,可以有效地帮助学生建立清晰的事件处理概念模型,提高他们对Java事件处理机制的理解和应用能力。对于初学者来说,这是一条系统地掌握事件处理技术的有效途径。

    java完美解析pdm

    这样,解析PDM并生成Java代码的过程就成为了一种模板化的工具,能够适应各种不同的数据库模型和业务场景。 总之,Java解析PDM是一种将数据库模型与代码生成相结合的技术,它简化了开发流程,提高了代码的可维护性。...

    java 解析 json文件 java 解析 json文件

    Java解析JSON文件是Java开发中常见的一项任务,特别是在与Web服务交互或处理API响应时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于阅读及编写的特点,被广泛应用于网络数据传输...

    环保212协议解析java

    5. **自定义数据模型**:根据协议定义,创建对应的Java对象模型,如Header、DataBody和Footer类,用于存储解析后的数据。 6. **异常处理**:在解析过程中可能出现各种错误,如格式错误、网络中断等,应适当地捕获并...

    HL7解析 Java

    6. **事件监听**:HAPI支持事件驱动编程,你可以注册监听器来捕获解析、创建和验证过程中的事件,这对于调试和日志记录非常有用。 7. **错误处理**:HAPI提供了异常处理机制,当解析、创建或验证过程中遇到问题时,...

    java 解析xml 多级

    首先,Java提供了两种主要的API来处理XML:DOM(文档对象模型)和SAX(简单API for XML)。DOM解析器会将整个XML文件加载到内存中,形成一个树形结构,适合处理小到中等规模的XML文档。而SAX解析器采用事件驱动的...

    java 调用 python yolo onnx 模型 AI 视频 识别 支持 yolov5 yolov8 yolov7源代码

    Java可以通过调用Python的YOLO...在整个流程中,Java应用可以进行预处理和后处理步骤,例如对图像进行缩放、裁剪、灰度化等预处理操作,以及对YOLO模型输出进行解析、筛选、可视化等后处理操作,从而提高目标检测和识别

    java解析hj212.rar

    Java解析HJ212协议是一项在环保领域中常见的任务,因为HJ212是中国环境保护部制定的一套数据交换标准,主要用于环境监测数据的传输和处理。这个名为"java解析hj212.rar"的压缩包包含了针对HJ212协议的Java实现,覆盖...

    java解析nc格点预报

    - **数据处理**:对读取的数据进行必要的计算和处理,如平均值、趋势分析等。 - **可视化**:将数据转换为图形,例如使用`JFreeChart`库创建地图或时间序列图,帮助用户理解预报结果。 5. **应用示例** 在这个项目...

    java 解析XML性能对比分析Demo

    在Java编程领域,XML(可扩展标记语言)作为一种数据交换和存储的标准,广泛应用于各种系统间的数据...在Java中,每种解析方法都有其独特的优势和适用范围,理解它们的工作原理和特点,能够帮助我们更好地进行XML处理。

    大气扩散模型JAVA代码

    通过阅读和理解这些代码,我们可以深入学习如何用JAVA编程来解决实际的环境科学问题,同时也可了解如何将复杂的物理模型转化为计算机程序。这对于环境科学家、工程师和计算机科学家来说都是宝贵的实践经验和知识。

    java解析outlook源码

    在Java编程领域,解析Outlook源码是一项常见的任务,尤其对于处理电子邮件数据或者集成Outlook功能的项目来说。本文将深入探讨如何使用Java解析Outlook源码,以及在这个过程中涉及的关键知识点。 首先,我们需要...

    全网最硬核 Java 新内存模型解析与实验单篇版.doc

    全网最硬核 Java 新内存模型解析与实验单篇版 Java 内存模型(JMM,Java Memory Model)是 Java 语言的核心组件之一,它定义了 Java 程序中内存的行为和语义。本文将深入探讨 JMM 的设计原理和实现机理,通过结合...

    ARMA模型与ARIMA模型java实现例程

    为了使用这个Java实现,你需要了解如何配置和运行Java项目,包括导入必要的库,读取数据,调用模型函数,以及解析和可视化结果。通过阅读代码和文档,你可以逐步理解模型的内部工作原理,并将其应用于自己的数据集。...

    使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

    在Java编程环境中,解析XML文件是一项常见的任务,特别是在数据处理和集成中。XML(Extensible Markup Language)是一种结构化数据格式,广泛用于存储和传输数据。本教程将介绍如何使用Java解析XML文件,并将解析...

    Java Spring 源码解析 Xmind 思维导图

    总的来说,这份"Java Spring 源码解析 Xmind 思维导图"涵盖了Spring框架的核心组件和设计理念,帮助开发者从源码层面理解Spring的运行机制。通过这样的学习,可以提升开发者对Spring的理解,从而更好地利用Spring...

    JAVA版LDA主题模型

    2. **源代码**:Java实现的LDA模型及其相关辅助类,如数据加载、预处理、模型训练和结果解析等。 3. **配置文件**:可能包含模型参数设置,如主题数量、迭代次数、alpha和beta值等。 4. **脚本或教程**:指导如何...

Global site tag (gtag.js) - Google Analytics