java第13天学习内容回顾——java白皮书第8章

java事件处理机制

  1. 事件的相关信息被封装在一个事件对象中(一个参数),事件源将这个时间对象分发到它的所有监视器中,并有监视器对事件作出反应。
  2. AWT时间处理机制
    1. 监听器对象构造出一个实例,这个实例实现了监听器接口
    2. 事件源是一个对象实例,这个实例可以注册(添加)监听器,并发送事件(事件发送到监听器)
    3. 事件发生时,事件源将发送到所有被添加进事件源的监视器
    4. 监视器利用被发送过来的事件信息决定如何相应

3.一个事件源可以对应多个监视器,监听器接口ActionListener接口,这个接口中只包含一个方法

void actionPerformed(ActionEvent event) 参数是被发送来的事件,根据事件类型不同会有不同的类型。

4.关于创建button:

JButton  x = new JButton(名字,图像);参数可以使1个也可以是两个

5.使用add方法将button加入画布

6.框架的构造器:a.构建画布 b.添加到画布的控件  c.构建监听器  d.将控件与监听器链接  e.将画布添加到框架

7.会经常遇到监听器需要对其他对象进行操作的情况,一种解决方法是设此监视器类作为该对象类的内部类,并且作者是这么建议的

8.使用方法event(这个是被发送的时间).getSource()得到发生事件的对象引用,.getActionCommand()方法返回与这个动作事件相关的命令字符串

9.创建包含一个方法的监听器也可以这样实现:EventHandler.create(ActionListener.class, frame(必须是一个公共类),"loadDate","source.text") 详述与P299 与反射机制有关

10.改变观感有两种方式:

a.静态方式:修改特定文件中的内容,只有在swing启动时会被设置一次

b.动态方式: 使用方法UIManager.setLookAndFeel(观感名字),找目标风格的观感;SwingUtilities.updateComponentTreeUI(框架.this(防止this被使用错误))刷新全部组件。

详述与P302;

11.关于java中的动作

“动作” 是监视器的扩充,它是基于监视器基础之上的,添加了图片,解释信息等功能,详述与P306

12.MouseEvent的对象实例成为鼠标事件,详述与P312

13.方法 getModifiersEx方法可以得到鼠标事件中的鼠标按钮和键盘饰符;在WIN32下 BUTTON3_DOWN_MASK可以检测鼠标右键这个时间,相关掩码的详述在p313

14.关于鼠标事件有两个独立的借口MouseListener接口和MouseMotionListener接口,后者负责鼠标的移动和拖动。

15.Cursor类中存在一个方法getPredefinedCursor方法,利用专用参数可以设置鼠标形状,详述与P313

16.AWT事件类的继承结构图 详述与p319

17.事件可以分为两类:语义事件和低级事件,关于这两种事件包含的事件类和相对应的事件接口以及事件适配器详述于p319~p320

18.关于适配器:每一个含有多个方法的AWT监视器接口,都配有一个自己的适配器,为了防止用于定义时的麻烦,可以设计一个继承适配器的类,然后只需要定义需要的接口方法就好,不将接口所有方法重新定义一遍。

19.监听器,频繁出现匿名局部类

20.对窗体(框架)的监听,被发送的事件类型为WindowEvent,监听器接口为WindowsListener,使用(框架).addWindows(){匿名局部类},添加关于框架(窗体)的事件监听器并连接。详述于p305

21.使用方法getNewState方法得到窗体的状态

22.一个监听器可以有多个事件源(例如鼠标点击事件和键盘组合键时间),swing包中提供了一个Action接口,它扩展与ActionListener接口。Action接口中除了actionPerformed方法,都在AbstractAction类中实现,所以可以使用类继承AbstractAction类再实现actionPerformed

23.可以根据“动作”构建按钮 JButton(动作变量实例名);

24.KeyStroke类封装了 对 “键” 的说明,构建这个类的对象实例,需要使用它的静态方法 .getKeyStroke方法,详述于p309

25.关于键盘指令与监视器的链接,详述于p311,:两个表,imap 包含键指令和它的id,amap包含id和动作(监视器), Input imap = .getInputmap("组合键描述"), input.put(放置键能与id对),

.getActionMap()得到 amap,   .put(放置id与动作对);

时间: 2024-11-05 18:52:28

java第13天学习内容回顾——java白皮书第8章的相关文章

java第三天学习内容回顾——java白皮书第四章

java面向对象程序设计中使用到名词理解:对象标识==一个实例的变量名.对象行为==一个类的方法.对象状态==类中的数据域(严格讲是可以发生变化的数据域): 类之间的关系:use_a,has_a,is_a三种 java中的Math类有些特殊,它只封装了功能而并不涉及数据域,所以不需要也不必隐藏数据 java中的对象变量名更像是个指针(像),声明一个对象实例后必须用new构造对象然后用=将两者链接起来,也可以用=将两个不同的对象变量连接起来,但此时需要注意,就像指针赋值一样,两个变量自此将共享同一

java第12天学习内容回顾——java白皮书第7章

AWT:抽象窗口工具箱,AWT+IFC==SWING,Swing是基于AWT架构之上的提供组件,但处理事件依然用AWT Swing用于 被绘制的用户界面类,javaFX可能会替代它,AWT 用于底层机制. 用户可以指定"观感",此外Metal是专属于java的"观感" Swing库中,JFrame类用于描述顶层窗体,它是极少数不需要绘制在"画布"上的SWing组件之一,所以它的"修饰部件"是由用户的窗口系统绘制,而不是Swin

java第四天学习内容回顾——java白皮书第四章

java中有自动的垃圾回收器,不需要人工回收内存或者资源,所以java不支持析构函数. finalize方法可以添加进任何一个类,可以用来在回收短缺的资源,但作者并不提倡使用这个方法,因为程序员无法确定这个方法将在哪一时刻被调用,只知道它将在垃圾回收器前调用. System.runFinalizersOnExits 这个方法能够确保finalizer方法在java关闭前调用,但作者认为这样并不安全,有一个替代的方法:Runtime.addShutdownHook方法,具体在白皮书后面介绍. ja

java第12天学习内容回顾——java白皮书第9章

Swing 用户界面组件 一种模式:模型----视图-----控制器 模式有很多种,例如:模型----视图----控制器(原则为限制一个对象拥有的功能数量):组合模型--容器和组件之间:装饰器模式----带滚动条的面板:策略模式-----布局管理器 内容---外观----行为----MVC 模型与视图之间关系 1:n 模型独立于观感,所以,有重用的可能 模型可能相同,但视同和控制器可能不同 metal观感中,JButton 继承了JComponent的包装器类,后者包含了DefaultButto

java第二天学习内容回顾——java白皮书第三章

对于由控制台进行输入时,需要利用到Scanner控件进行辅助,可以利用它进行整行或者单字节的读取,此外需要注意,如果是密码方面的输入问题,需要利用的Console空间,其限制每次只能固定读取一整行. java需要包含某些包时,利用import保留字,不同于Include java关于格式化输出问题的详述于白皮书P57 String.format方法的使用与作用类似于print,但不同处在于前者只是创建了一个格式化的字符串,而后者则是打印出格式化的字符串. 对于当前时间的多种打印形式详述与白皮书P

java第五至七天学习内容回顾——java白皮书第五章

java学习过程出现第一次滞后,背景:清明节以及持续1周的雨. 方法签名=方法名+参数列表. 在覆盖方法时需要注意:1.覆盖后的方法返回类型的兼容性:2.新的方法的可见性必须不低于原方法的可见性. 这里有一个因果:每次调用方法都要进行搜索开销很大,所以 虚拟机 会预先为 每一个类 建立方法表,使用时直接查表,此外,除了private,static,final方法,所有的方法都是动态链接. 调用 某个方法 的实际解析过程 详述于白皮书P160: final 修饰的类将不允许出现继承,此类中所有的方

java第一天学习内容回顾——java白皮书第三章

java虚拟机可以使用即时编译和字节码(为达到独立于平台的特性)两种,对使用频繁的字节码序列将编译成机器码实现即时编译. java中基本类型的字节数是固定的(为方便移植),与C/C++不同(它们只确定了相对大小关系),java中byte(1) short(2) int(4) long(8) float(4) double(8). java分为标准版.微型版(嵌入式).企业版(后端) HTML是描述网页结构的方式,java是程序设计语言,其内容提供的applet可以嵌入网页中. XML是描述数据结

今日学习内容回顾 一、基本数据类型 二、字符串型及内置方法 三、列表型及内置方法

一.基本数据类型int类型.float类型1.用途:int:记录年龄.电话号码.QQ号码 float:薪资.身高等 2.定义方式:int(object) float(object)#int(object) int返回的结果只能是数据整型,当你将int(float型)时,返回的是该float 对象的取整部分,其他的识别不了,当你将一个不全是数字的字符串强制转化为int整型 时,系统会出现报错.这里int(object)中的对象可以是一个,也可以多个,以逗号分开如:int(x,y)进制间转换形式:i

Java基础系列1:深入理解Java数据类型

Java基础系列1:深入理解Java数据类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括四个内容: Java基本类型 Java封装类型 自动装箱和拆箱 封装类型缓存机制 Java基本类型 Java基本类型分类.大小及表示范围 Java的基本数据类型总共有8种,包括三类:数值型,字符型,布尔型,其中 数值型: 整数类型:byte.short.int.long 浮点类型:float.doubl