《Java大学教程》—第10章 图形和事件驱动程序
10.2 Swing程序包
AWT(Abstract Window Toolkit): 抽象窗口工具集。
依赖于本地操作系统的组件被称为重量级(Heavy Weight)组件,因为它们都会大量使用系统资源。
组件名称有Frame(框架)、Button(按钮)、Label(标签)等
Swing: 基于AWT类构建。
几乎所有的组件都用Java编写,而且所有代码都是Swing程序包的一部分。用Java语言编写的组件称为轻量级(Light Weight)组件。
组件名称都以J开头,如JFrame、JButton、JLabel等。
Swing程序包和AWT程序包都是Java基础类(Java Foundation Class, JFC)中的一部分。
补充说明:首先轻量级与重量级是一个相对的概念,主要是对应用框架使用方便性和所提供服务特性等方面做比较的。
轻量级组件都是纯Java代码开发的,具有良好的平台移植性,不依赖于操作系统的支持,在所有的平台上表现一样,不直接使用操作系统的资源,
当然操作系统的资源依然是要占用的,只是系统资源的管理都由组件完成,使用组件的程序员不直接与操作系统的资源打交道。
重量级组件则每个类都会与操作系统中的一个对等资源相对应。
10.4 Java中的事件处理机制(event-handling)
事件处理器(event-handler)
自测题:
1。轻量级组件与重量级组件的不同。
依赖于本地操作系统的组件被称为重量级组件,因为它们都会大量使用系统资源。
全部使用Java语言编写的组件称为轻量级组件,它们透过AWT使用系统资源,不会直接管理系统资源。
2。布局管理器的作用
3。FlowLayout管理器与BorderLayout管理器的不同
4。
a) JFrame组件的布局策略
b) JPanel组件的布局策略
5。一个名为SomeClass的类具有两个按钮组件,这两个按钮组件被按下时将会采取特定的动作。
a) 必要的import语句。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
b) 正确的头部语句。
public class SomeClass extends JFrame implements ActionListener
c) 创建按钮需要的Swing组件。
JButton
d) 对按钮监听鼠标单击事件。
button1.addActionListener(this);
e) 哪个方法可以决定鼠标单击按钮时采取行动。
public void actionPerformed(ActionEvent e)
注: 实现可以参看PushMe.java
编程练习:代码附件
1. PushMe.java RunPushMe.java
2. ChangingFacesGUI.java
这个我用的是Swing Designer完成的界面设计+手工修改了部分代码,
优点:比原始版本简洁
缺点:使用了anoynomous class,本书到这里还没有讲解;还用了enum类型,也是要到书的后面才讲,这样做就是为了更好的对比学习
3. MetricConverterGUI.java
实现了摄氏温度与华氏温度的转换
最后加了两个Panel是为了对齐前面的Panel
4. ReactorTesterGUI.java
也是采用Swing Designer完成的界面设计,还增加了MessageBox的使用。
补充1:MessageBox需要一个父组件,而ReactorTesterGUI并没有在构造函数中实例化,所以不能使用。
而能使用的是contentPane,这个是在构造函数中实例化了,并且在使用之前已经声明了。
父组件是为也确定MessageBox显示的位置,结果是MessageBox会显示在父组件的中间位置。
补充2:因为ReactorTesterGUI在构造函数中是无法实例化的,所以生成的组件并没有直接放在frame的panel中,而是放在contentPane中。
contentPane是在ReactorTesterGUI的类中声明了,再在构造函数中用setContentPane(contentPane)来替换JFrame自己的rootPane。
《Java大学教程》—第10章 图形和事件驱动程序的更多相关文章
- 正在学习的Java大学教程
推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...
- 《Java大学教程》—第18章 高级图形编程
自测题:1. 在图形应用程序中为用户提供选择的多种方式:P433下拉菜单(pull-down menu).弹出式菜单(pop-up menu).对话框窗口(dialogue window).单选 ...
- 《Java大学教程》—第24章 Java的背景
本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2 语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...
- 《Java大学教程》—第23章 Java网络编程
本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性.虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多. 23 ...
- 《Java大学教程》—第22章 多线程程序
22.2 进程(process):P551时间切片(time-slicing):处理器只是完成了一个任务的一部分工作,然后完成下一个任务的一部分工作,因为处理吕每次完成工作的时间都非常短,因此看起来这 ...
- 《Java大学教程》—第19章 改进用户界面
用户与程序交互的媒介称为用户界面(user interface)或人机界面(human-computer interface). 19.2 Border接口8个实现Border接口的标准边框类: ...
- 《Java大学教程》—第14章 抽象、继承和接口
自测题:1. 解释抽象和抽象数据类型的概念.P333抽象的概念是仅仅关注对象可以完成什么工作,而不必担心如何完成工作的细节.类模板通常被称为抽象数据类型.因为这类数据暴露给用户的所有信息仅仅是方 ...
- 《Java大学教程》—第12章 案例研究--第2部分
本章就是上一章的延续,主要是用GUI实现了控制界面. 编程练习:代码附件Hostel.java1. 正确运行2. Runhostel.java3. searchButton
- 《Java大学教程》—第11章 案例研究--第1部分
自测题:1. 图11-1的UML设计中各个类之间的关系.Hostel与TenantList是关联关系:TenantList和PaymentList与ObjectList是泛化关系.TenantL ...
随机推荐
- 基础篇:8.如何定义变量?js变量有什么特点?
书接上文,废话不多说,直接进入正题,下面我们一起来讨论js中的变量那些事! 那什么是变量? 变量是存储信息的容器,可以存储任何类型的数据. 如何定义变量呢? 变量可以使用短名称,如x,y:也可以是长名 ...
- js中const,var,let区别(转载)
js中const,var,let区别 来源:https://www.cnblogs.com/zzsdream/p/6372729.html 今天第一次遇到const定义的变量,查阅了相关资料整理了这篇 ...
- SpringBoot快速开始Hello World
介绍 Spring Boot跟Spring MVC不太一样,Spring MVC建新项目的时候是要配置很多东西的,而Spring Boot讲究的是快速,提供了很多默认配置,所以新建一个项目不需要手动配 ...
- MyBatis:事务回滚
事务的隔离级别:DEFAULT.READ_UNCOMMITED.READ_COMMITTED.REPEATABLE_READ.SERIALIZABLE 事务的传播行为:REQUIRED.SUPPORT ...
- Java中枚举的使用
Java中枚举其实就是静态常量,今天发现枚举里面其实还能加方法,学习了下, 代码如下: package org.pine.test; import java.util.HashMap; import ...
- K8S 调度器,预选策略,优选函数
Kubernetes Scheduler 提供的调度流程分三步: 预选策略(predicate) 遍历nodelist,选择出符合要求的候选节点,Kubernetes内置了多种预选规则供用户选择. 优 ...
- 中文代码示例之Electron桌面应用开发初体验
参考: 打造你的第一个 Electron 应用 首先运行下面在目录下创建package.json: $ npm init 去掉了一些无关项后内容如下: { "name": &quo ...
- 【代码笔记】Web-JavaScript-Javascript对象
一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- 腾讯.NET&PHP面试题
在整个面试过程中,作为面试者的你,角色就是小怪兽,面试官的角色则是奥特曼,更不幸的是,作为小怪兽的你是孤身一人,而奥特曼却往往有好几个助攻,你总是被虐得不要不要的~ 作为复读一年才考上专科的我,遗憾的 ...
- Android 滑动定位+吸附悬停效果实现
在前两篇文章中,分别介绍了tablayout+scrollview 和 tablayout+recyclerview 实现的滑动定位的功能,文章链接: Android 实现锚点定位 Android t ...