• 《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多线程的基本介绍
    Fragment基本介绍
    TypedValue.applyDimension的使用
    获取当前进程名并判断是否是主进程
    Bitmap类、BitmapFactory及BitmapFactory类中的常用方法
    Android 动态改变图片的颜色值
    Glide4.0使用
    Android在一个app中启动另一个App
    使用Recyclerview实现图片水平自动循环滚动
    Java变量的修饰符
  • 原文地址:https://www.cnblogs.com/zhuyx/p/10401922.html
Copyright © 2020-2023  润新知