JAVA课件 第11章 GUI

合集下载

Java11

Java11
容器的主要作用和特点有:
容器有一定的范围。
容器有一定的位置。(这个位置可以是屏幕四角的绝对位 置,也可以是相对于其他容器边框的相对位置) 容器中可以包含其他的许多界面元素。(当容器被打开显 示时,它上面的元素也显示出来,当容器被关闭和隐藏时, 它所包含的元素也一起被隐藏。) 容器可以按一定的规则来物理地安排它所包含的元素(如 这些元素的相对位置关系、它们的的前后排列关系等。) 容器可能被包含在其他容器之中。

控制组件
常用的控制组件: 标签(Label) 按钮(Button) 文本编辑区(TextField,TextArea) 复选框(Checkbox) 单选按钮(CheckboxGroup或RadioButton) 下拉列表(List或Choice)
布局管理器
在实际编程中,我们每设计一个窗体,都要往其中 添加若干组件。为了管理好这些组件的布局,我们 就需要使用布局管理器。
图形用户界面基础
AWT (Abstract Window Toolkit)
组件一律是 heavyweight(重组件)
AWT把显示组件和处理组件事件的工作交给本地 组件(同位体)来完成。 Swing 组件大部分都是 lightweight(轻组件)
轻组件没有同位体,把显示组件和处理组件事件 的工作交给相应的UI代表来完成。
将组件按从左到右而后从上到下的顺序依次排列,一行 不能放完则折到下一行继续放置。
FlowLayout
构造器定义:
public FlowLayout(); public FlowLayout(int align); public FlowLayout(int align, int hgap, int vgap); FlowLayout类定义有三个对齐常量:

Java基础第11章课件

Java基础第11章课件

11.2 Eclipse的安装与启动
– 2.启动Eclipse开发工具
让IT教学更简单,让IT学习更有效
– (1)在Eclipse安装文件中运行eclipse.exe文件即可
11.2 Eclipse的安装与启动
– 2.启动Eclipse开发工具
让IT教学更简单,让IT学习更有效
– (2)Eclipse启动完成后会弹出一个对话框,提示选择工作空间 (Workspace)
• 12.5.1 使用Eclipse工具导出jar文件 • 3.选择导出文件的格式
– 在弹出的【Export】对话框中选择要导出的文件格式,这里选择 Java文件夹下的JAR file,然后点击【next】按钮
11.5 使用Eclipse导入、 导出jar文件
让IT教学更简单,让IT学习更有效
• 12.5.1 使用Eclipse工具导出jar文件 • 4.定义导出文件的路径和名称
让IT教学更简单,让IT学习更有效
第十一章 Eclipse开发工具
• Eclipse的安装和配置 • Eclipse开发、运行、调试程序 • Eclipse中jar包的导出和导入
目录
Eclipse概述
让IT教学更简单,让IT学习更有效
Eclipse的安装与启动
Eclipse进行程序开发
Eclipse程序调试
11.2 Eclipse的安装与启动
• 12.2.2 Eclipse透视图
让IT教学更简单,让IT学习更有效
– 透视图(Perspective)是比视图更大的一种概念,用于定义工作台 窗口中视图的初始设置和布局,目的在于完成特定类型的任务或使 用特定类型的资源。Eclipse的开发环境中提供了几种常用的透视图

Java_11

Java_11

11.2.3布局管理器
卡片式布局管理器的页面配置方式是把容器中的所 有组件如同堆叠起来的“扑克牌”,每次只能显示 最上面的一样,这个在最上面被显示出来的组件将 占据所有的容器空间。
11.2.3布局管理器
网格式布局将容器的空间分成若干行与列的网格形 式,向容器添加组件时,将按照从左到右,从上到 下的顺序在网格中排列。网格的行数和列数在创建 GridLayout类的对象方法中指定。 利用网格式布局,容器中各组件的高度和宽度相同, 当容器的尺寸发生变化后,各组件的相对位置不变, 但各自的尺寸会发生变化。
11.3.2Swing常用组件
Swing中文字输入有两个类,JTextField类和 JTextArea类,前者定义一个单行文本框,后者实 现多行文本区。 可以通过JOptionPane类来创建具有特殊用途的对 话框,例如:
确认对话框(Confirm Dialog)。 信息对话框(Message Dialog)。 输入对话框(Input Dialog)。 自定义对话框(Option Dialog)。
11.2.3布局管理器
Java.awt包提供了5种布局管理器,每种布局管理 器对应一种布局策略,分别是:流式布局 (FlowLayout类)、边框式布局(BorderLayout 类)、卡片式布局(CardLayout类)、网格式布局 (GridLayout类)、网袋式布局(GridBagLayout 类)。 当将一个组件加入到该容器后,布局管理器就能够 自动设置该组件的大小和位置,当容器大小改变时, 布局管理器能自动调整其中组件的大小和位置。 用户可以为容器指定不同的布局管理器,在不同的 布局管理器下,同一个组件将会有不同的显示效果。
在AWT中列表由List类创建,同下拉列表一样,列 表也用于在多列表项中进行选择,列表项编号也从 0开始。 列表于下拉列表的不同主要在于:

Java程序设计课件:GUI组件

Java程序设计课件:GUI组件
构造一个具有指定文本的文本区。 TextArea(String text)
构造一个具有指定的行数和列数和指定文本的文本区。 TextArea(String text, int rows, int columns)
构造一个具有指定文本,指定行数、列数和滚动条的文本区。 TextArea(String text, int rows, int columns, int scrollbars)
getSelectedValues()
返回所有选择值的Object类型的数组,并根 据列表中的索引顺序按升序排序。
isSelectedIndex(int index)
判定指定index的项是否被选中,如果选择了 指定的索引,则返回 true;否则返回 false。
isSelectionEmpty()
表示字体的显示形式,它可以取下面几个常量之一。
Font.BOLD:表示字体加粗。 Font.ITALIC:表示字体倾斜。 Font.PLAIN:表示正常字体,也是Font字体的默认值。
参数size表示字体的大小,其单位为磅,要求为正整数, size值越大表示字越大。
2023/12/28
6/35
Java程序设计
GUI组件
本章主要内容
常用控制组件 菜单 工具栏 对话框 图形图像的显示 小结
2023/12/28
2/30
常用控制组件
容器组件可以设置界面的布局。控制组件为用户 提供的控制程序执行过程的功能。
常用控制组件包括:
标签:显示输出信息 按钮:启动程序功能 文本框:获取用户输入的简单信息 文本区:获取用户输入的复杂信息 列表框:显示多个选项供用户选择 组合框:包含多个选项,但仅显示一个选项供用户选

《JavaGUI课件》

《JavaGUI课件》

Java GUI网络编程
Java网络编程基础
Java网络编程是一种分布式 编程技术,将计算机网络通 信集成到程序中。
Java网络通信模型
Java网络编程采用客户端/服 务器模型,客户端向服务器 发送请求,服务器进行相应 的处理并返回结果。
Java Socket技术
Java Socket技术是Java网络 编程的基础,用于实现不同 计算机之间的通信。
Swing事件处理机制
Swing事件处理机制使用基于观察者设计模式的 事件分发器来处理事件,允许多个监听器监听同 一个事件。
事件监听器
Java GUI中的事件监听器允许开发人员编写自定 义代码响应事件,以实现特定的业务逻辑。
事件调度线程
事件调度线程是一个专用线程,用于响应GUI事 件、更新图形界面和调用事件处理代码。
Java GUI与数据库编程
Java数据库连接技术
Java数据库连接技术(JDBC)是 Java编程语言用于与数据库通信 的应用程序接口。
Java持久化API
Hibernate ORM框架
Java持久化API(JPA)是Java对 象与关系数据库之间的映射技术, 使得Java对象可以存取关系数据 库中的数据。
标签与按钮
标签和按钮是Java GUI中最基本的组件, 可以用于显示文本、图片和处理用户输 入事件。
下拉框和列表框
下拉框和列表框是Java GUI中用于提供选 项和选择的组件,可以使用默认选择项 和自定义选择项。
Java GUI事件处理机制
什么是事件?
事件是Java GUI中某些组件发生的动作或状态变 化。
Java GUI调试技巧与工具
1 调试技巧
1.日志记录 2.断点调试 3.异 常捕获 4.打印调试信息 5.单 元测试

《JavaGUI程序设计》课件

《JavaGUI程序设计》课件

Java GUI进阶主题
使用Swing工具箱
使用Swing工具箱的可视化设计器,可快速创建GUI应用程序界面。
绘图和动画
Java GUI提供了丰富的绘图和动画库,可用于开发游戏和交互式多媒体应用程序。
多线程编程
Java GUI应用程序通常需要响应用户输入和处理常规任务,使用多线程技术可提高应用程序的响应速度。
JavaFX是Java平台的下一代用户界面工具包,提供了现代UI设计和高性能渲染能 力。
2
Java应用程序开发的未来
GUI应用程序开发将朝向更加智能、高效、多样化和灵活性等方向发展。
3
总结
Java GUI编程涵盖了广泛的主题,包括基础知识、高级编程、布局管理、应用程 序实例,进阶主题等。学好Java GUI编程对于开发人员而言具有极大的价值。
Java Swing是一个跨平台的用户界面库,于1997年发布。它是Java语言创新的产物。
3 为什么需要Java GUI编程
Java的可移植性、易于使用的UI组件和布局管理器,使得Java GUI应用程序适用于各种平 台和设备。
Java GUI基础知识
Java Swing库介绍
Swing是Java的用户界面(UI) 工具包,是Java Foundation Classes (JFC) 的一部分。Swing 包括各种UI组件,如窗口、标 签、按钮和滚动条。
常用组件介绍
常用的UI组件包括文本框、复 选框、单选按钮、列表框、下 拉列表框等。
容器介绍
容器是Swing面板的父类,用于 容纳其他组件,如框架、面板 和对话框。
Java GUI高级编程
事件驱动模型
基于事件-监听器设计模型,允许 程序响应用户输入。

Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料

Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料
JLayeredPane和JRootPane。
7
9.1 Swing 简介
9.1.1 窗体组件 JFrame 9.1.2 对话框组件 JDialog 9.1.3 对话框组件 JOptionPane 9.1.4 中间容器 JPanel 与 JscrollPane 9.1.5 标签组件 JLabel 9.1.6 文本组件 JTextField 与JTextArea
5
✓Swing包在图形界面设计上比AWT更丰富,更美观。Swing 拥有4倍于AWT的用户界面组件。 ✓是AWT包基础上的扩展,在很多情况下在AWT包的部件前 加上字母J即为Swing组件的名称,如:JFrame、JApplet、 JButton等。 ✓Swing组件都是AWT的Container类的直接子类或间接子类 。
17
9.1.3 对话框组件 JOptionPane
使用上面介绍的 JDialog 可以制作消息提示对话框、确定取消对话框等常用的对话框,但相 对来说要花费一些心思才能做出来,而 JOptionPane 组件直接提供了创建上述几种常用的对 话框的方法,大大方便了编程。 1.showMessageDialog()的静态方法弹出消息对话框,显示一条消息并等待用户确定。常用 的重载方法如下。
4、设置窗体的位置。setLocationRelativeTo(Component c):设置 窗体的相对位置。如果参数为 null,则窗体在屏幕中居中对齐。
5、如果希望在关闭窗体后程序可以随之停止,需要调用方法 setDefaultClose Operation()并传入参数 JFrame.EXIT_ON_CLOSE, 这句代码设置了关闭窗体后会停止程序的运行。 此外还有其他 3 个参数,简述如下。
口");。 2)带参的构造方法:用一个字符串作为参数,此字符串将成为窗体的标题。

java11-GUI图形用户界面编程

java11-GUI图形用户界面编程

java11-GUI图形⽤户界⾯编程⼀、⼆、三、绝对布局import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextField;public class GuiDemo {private JFrame f; // 窗体private JTextField tf; // ⽂本框private JButton btn1; // 按钮 1private JButton btn2; // 按钮 2private JButton btnAdd; // 按钮加号 +private JButton btnEqual; // 按钮等于 =private JButton btnClear; // 按钮清除StringBuffer sb; // 定义⼀个变量,存储⽂本框⾥⾯的数值Integer number1; // 加数Integer number2; // 被加数Integer sum; // 和boolean b; // 运算符是否被点击// 构造⽅法GuiDemo() {// 初始化原始数据initData();// 控件初始化initUI();}private void initData() {sb = new StringBuffer("");number1 = 0;number2 = 0;sum = 0;b = false;}private void initUI() {f = new JFrame("计算器");f.setSize(400, 200); // 设置窗⼝的宽⾼f.setLocation(100, 100); // 设置窗⼝的起始点// f.setLayout(new FlowLayout()); // 会重新绘制⼤⼩f.setResizable(false); // 设置窗⼝⼀旦创建好,不能在改变⼤⼩。

11 GUI

11 GUI

18/56
2.常用组件
2.3 JPanel
import java.awt.*; import javax.swing.*;
public class TestJFrameJPanel
{ public static void main(String args[]) { JPanel panel=new JPanel(); panel.setBackground(Color.GREEN); JFrame frame=new JFrame("窗口名称"); frame.setBackground(Color.BLUE); frame.getContentPane().add(panel); frame.add(panel); frame.setVisible(true); } }
设置缺省的关闭方式: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
17/56
2.常用组件
2.2 JFrame
import java.awt.*; import javax.swing.JFrame; public class TestFrame { public static void main(String args[]) { JFrame f=new JFrame("My First Test"); f.setSize(300, 200); f.setBackground(Color.red); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().setBackground(Color.blue); f.setVisible(true); } }

Java语言基础课件GUI

Java语言基础课件GUI
繁琐. 3. 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的
方法即可.
适配器原理
1. 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全 是空的.
2. 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的 3. 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方
法就可以了
事件处理讲解 ➢ 事件处理的三要素:事件、事件源、监听器 ➢ 事件: 用户的一个操作 ➢ 事件源: 被操作的组件 ➢ 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件
源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
规则的矩阵
➢ CardLayout(卡片布局管理器)
选项卡
➢ GridBagLayout(网格包布局管理器)
非规则的矩阵
窗体监听
鼠标监听
键盘监听
适配器设计模式(掌握)
什么是适配器
1. 在使用监听器的时候, 需要定义一个类事件监听器接口. 2. 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很
GUI-图形化编程
大纲
1. GUI是什么 2. 创建一个窗口并显示 3. 布局管理器 4. 窗体监听 5. 鼠标监听 6. 键盘监听和键盘事件 7. 动作监听 8. 适配器设计模式 9. 事件处理
GUI是什么
➢ Graphical User Interface(图形用户接口) ➢ java提供了一个 java.awt 包,用于创建用户界面和绘制图形图像的所有类。 ➢ 这个PPT的内容作为了解,做j2ee方向的一般很少会用这个东西

11 GUI

11 GUI

AWT没有做到完全的跨平台。

新的开发包是SWINGFrameFrame其实是内存里面的一个对象,必须用setVisible()使他可见。

PanelPanel不可以单独出现,必须装到其他的容器里面才可以正常显示而且panel的setBounds的方法是相对它自己在于装它的容器的位置。

布局管理器:Flow Layout 是panel的默认波局管理器Border Layout是frame的默认布局管理器。

只有东南西北中。

要注意,在Border Layout当中,后一个对象会把前一个给盖住Gird Layout就是一个表,几行几列的那种。

Java事件处理是采取在事件源上注册监听器来实现的:* 1. 一个事件源组件上可以同时注册多个监听器* 2. 一个监听器对象可以同时注册到多个事件源组件上* 3. 事件源的信息可以随它所触发的事件自动传递到所有注册过的监听器Java的门面/管家模式(设计模式?)(持有对方的引用):import java.awt.*;import java.awt.event.*;publicclass TFMath {publicstaticvoid main(String[] args) {new TFFrame1().launchFrame();}}class TFFrame1 extends Frame {TextField num1, num2, num3;publicvoid launchFrame() {num1 = new TextField(10);num2 = new TextField(10);num3 = new TextField(15);Label lblPlus = new Label("+");Button btnEqual = new Button("=");btnEqual.addActionListener(new MyMonitor111(this));setLayout(new FlowLayout());add(num1);add(lblPlus);add(num2);add(btnEqual);add(num3);pack();setVisible(true);}class MyMonitor111 implements ActionListener {TextField num1, num2, num3;TFFrame1 tf = null;public MyMonitor111(TFFrame1 tf) {//得到来自TFFrame1的对象,也就是说获得其所有的成员和方法this.tf = tf;}publicvoid actionPerformed(ActionEvent e) {int n1 = Integer.parseInt(tf.num1.getText()); //通过访问tf得到tf.num1对象int n2 = Integer.parseInt(tf.num2.getText());//通过访问tf得到tf.num2对象tf.num3.setText("" + (n1+n2));}}在本例中,tf作为一个大管家出现了,可以管理内部所有的对象。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FlowLayout 是Panel,Applet的缺省布局管理器。 其组件的放置规律是从上到下、从左到右进行放 置,如果容器足够宽,第一个组件先添加到容器 中第一行的最左边,后续的组件依次添加到上一 个组件的右边,如果当前行已放置不下该组件, 则放置到下一行的最左边。 当容器的大小发生变化时,用FlowLayout管理的 组件会发生变化,其变化规律是:组件的大小不 变,但是相对位置会发生变化。例如上图中有三 个按钮都处于同一行,但是如果把该窗口变窄, 窄到刚好能够放下两个按钮,则第三个按钮将放 到第二行。
11.2.5 GridBagLayout
GridBagLayout生成的布局管理器也是和 GridLayout一样是使用网格来进行布局管理的, 所不同之处在于GridBagLayout可以通过类 GridBagConstraints 来控制容器内各个组件的大小, 每个组件都使 用 一 个 GridBagConstraints 对 象 来 给 出 它 的 大小和摆放位置,这样就可以按照设计者的意图,改 变组件的大小,把他们摆在设计者希望摆放的位置 上.这种灵活性是前面几个布局管理器所不具备的。 但也正是这种灵活性使得它成为java中最有弹性也 是最复杂的一种布局管理器。
11.2布局管理器 布局管理器
11.2.1 FlowLayout 11.2.2 BorderLayout 11.2.3 GridLayout 11.2.4 CardLayout 11.2.5 GridBagLayout 11.2.6无布局管理器 11.2.7 容器的嵌套
11.2.1 FlowLayout
11.3.4事件适配器 事件适配器
import java.awt.*; import java.awt.event.*; class WindowClosing extends WindowAdapter { public void windowClosing(WindowEvent e){ System.exit(0); } }
CardLayout布局管理器能够帮助用户处理两个 以至更多的成员共享同一显示空间,它把容器 分成许多层,每层的显示空间占据整个容器的 大小,但是每层只允许放置一个组件,当然每 层都可以利用Panel来实现复杂的用户界面。 牌布局管理器(CardLayout)就象一副叠得整 整齐齐的扑克牌一样,有54张牌,但是你只能 看见最上面的一张牌,每一张牌就相当于牌布 局管理器中的每一层
11.3.1事件处理模型 事件处理模型
1. JDK1.0的层次事件模型 在层次事件模型中,当一个事件对象产生后, 首先传递给直接相关的组件,该组件可以对事 件进行处理,也可以忽略事件不处理。如果组 件没有对事件进行处理,则AWT事件处理系 统会将事件继续向上传递给组件所在的容器。 同样,容器可以对事件处理,也可以忽略不处 理。如果事件又被忽略,则AWT事件处理系 统会将事件继续上传,以次类推,直到事件被 处理,或是已传到顶层容器。
11.3.1事件处理模型 事件处理模型
下面我们以按钮组件的单击事件为例,说明如何编写 事件处理程序。 当用户单击按钮时,系统捕获这些操作并产生 ActionEvent事件,然后将执行约定的ActionListener接 口中的actionPerformed方法,而该方法的具体实现则 委托给该方法所在的类。为此程序中必须: (1) 为按钮注册事件监听程序 public void addActionListener (ActionListener handler) 使 用 按 钮 的 addActionListener ( ) 方 法 , 注 册 一 个 ActionEvent事件监听程序。Handler为按钮委托的事件 监听程序类对象。如果是本类,则用this指明,如 b.addActionListener(this);
11.3.1事件处理模型 事件处理模型
1. JDK1.1的授权事件模型 为了客服JDK1.0层次事件模型的缺点,JDK1.1 引入了授权事件模型,在这个模型中, 事件处理是从一个事件源授权到一个或多个事 件监听者,组件作为事件源可以触发事件,通 过addXXXlistener方法向组件注册监听器,一 个组件可以注册多个监听器,如果组件触发了 相应类型的事件,此事件被传送给已注册的监 听器,事件监听器负责处理事件的过程。
11.3.2 AWT事件 事件
在授权事件模型中,事件既是基础,又是联系各 个部分的桥梁。首先,组件作为事件源产生事件, 不同类型的组件会产生不同类型的事件。事件发 生后,事件被传递给对应事件监听器中实现的事 件处理方法,并且在事件中,包含着用户传递给 系统的交互信息,如文本框中的输入内容等。 不同类型的事件由不同的Java类来表示,基类是 java.util.EventObject, 所有的事件都是从它继承而 来的。AWT为GUI事件定义了自己的基类, java.awt.AWTEvent,它是EventObject的子类。 AWT事件的详细结构图见图11-9。
11.1.1 Frame框架类 框架类
AWT在实际的运行过程中是调用所在平台的 图形系统,因此同样一段AWT程序在不同的 操作系统平台下运行所看到的图形系统是不一 样的。例如在windows下运行,则显示的窗口 是windows风格的窗口;而在UNIX下运行时, 则显示的是UNIX风格的窗口。 点击窗口的关闭按钮,看是否能关闭该窗口? 结果是不能。为什么呢?因为关闭事件没有注 册,也没有定义相应的处理程序。此时只能通 过ctrl+c强行关闭该窗口了。
11.1.1 Frame框架类 11.ቤተ መጻሕፍቲ ባይዱ.3 Panel面板类
11.1.1 Frame框架类 框架类
一般我们要生成一个窗口,通常是用Window 的子类Frame来进行实例化,而不直接用到 Window类。Frame的外观就像我们平常在 windows系统下见到的窗口,有标题、边框、 菜单、大小等等。每个Frame的对象实例化以 后,默认是不显示和最小化的,因此必须调用 setSize()来设置大小,调用setVisible(true)来设 置该窗口为可见的。框架类的许多方法都是从 它的超类Window类及更上层的Container和 Component类继承而来。
11.1.3 Panel面板类 面板类
Panel是一种没有标题的容器。并且实例化后 必须用Container的add方法加入到Window对象 中。 java应用程序中,一般独立应用程序主要使用 框架做容器,在Frame上通过放置Panel面板来 控制图形界面的布局。如果应用到浏览器中, 则主要使用Panel的一个子类Applet来做容器。 Applet是一个能够嵌入浏览器运行的特殊容器。
11.3.2 AWT事件 事件
java.util.EventObject
java.awt.AWTEvent
ActionEvent
AdjustmentEvent
ComponentEvent
ItemEvent
TextEvent
ContainerEvent
FocusEvent
InputEvent
PointEvent
程序设计》 《Java程序设计》 程序设计
第11章 GUI程序设计 章 程序设计
11.1 AWT组件简介 11.2布局管理器 11.3 AWT事件处理 11.4 常用AWT组件使用举例 11.5 Swing组件设计用户界面 11.6 AWT图形和Java2D图形
11.1 AWT组件简介 组件简介
11.2.5 GridBagLayout
11.3AWT事件处理 事件处理
11.3.1事件处理模型 11.3.2 AWT事件 11.3.3事件监听器 11.3.4事件适配器 11.3.5内部类和匿名类
11.3.1事件处理模型 事件处理模型
JDK1.0 和JDK1.1采用不同的事件处理模型, 其中JDK1.0采用的是层次(hierarchal)模型, 而JDK1.1采用的是委托(delegation)模型。 了解两种模型的基本原理和差异将有助于我们 更好的理解和掌握JDK1.1的事件模型
WindowEvent
KeyEvent
MouseEvent
11.3.3事件监听器 事件监听器
接收事件并对事件做出相应反映的对象称为事 件监听器。Java.awt.event包中按照不同的事件 类型定义了11个监听器接口,每类事件都有对 应的事件监听器,监听器是接口,接口中定义 了事件发生时可调用的方法,一个类可以实现 监听器的一个或多个接口,这就需要把所实现 接口中所定义的所有方法实现,当对其中的方 法不感兴趣时,也可以将方法体用一对(); 而不给出具体方法。
11.3.5内部类和匿名类 内部类和匿名类
为了简化事件源和监听器之间的关系,java的 事件处理中引入和使用了内部类(Inner Class) 和匿名类(Anonymous Class),内部类是被 定义于另一个类中的类,即类的嵌套。由于内 部类可以访问外部类的成员方法和变量,包括 私有的成员。所有实现监听器时,采用内部类, 匿名类变成非常容易实现其功能。 下面我们通过例子来体会通过主类和内部类两 种方法实现监听器的不同之处。
11.2.1 FlowLayout
11.2.2 BorderLayout
BorderLayout 是Window,Frame和Dialog的缺省布 局管理器。BorderLayout布局管理器把容器分成5 个区域:North,South,East,West和Center,每 个区域只能放置一个组件。如果使用了 BorderLayout布局,当容器的大小发生变化,其变 化规律为:组件的相对位置不变,大小发生变化。 例如容器变高了,则North、South区域不变, West、Center、East区域变高;如果容器变宽了, West、East区域不变,North、Center、South区域 变宽。不一定所有的区域都有组件,如果四周的 区域(West、East、North、South区域)没有组件, 则由Center区域去补充。
相关文档
最新文档