Java, Only Java!

统计

留言簿(20)

积分与排名

好友空间

文档技巧

阅读排行榜

评论排行榜

《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。

posted on 2016-08-30 21:38 zYx.Tom 阅读(179) 评论(0)  编辑  收藏 所属分类: 1.Java世界


只有注册用户登录后才能发表评论。


网站导航: