图形用户界面与事件处理PPT参考
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• Swing类简介
➢ 对前面的AWTFrameWithButton类进行修改: ✓ 引入javax.swing包,而不是引入 java.awt包; ✓ 扩充Jframe类,而不是扩充Frame类; ✓ 按钮名称以字母J开头。 ✓ 将语句 this. add(closeButton);
授课:XXX
15
13.2 事件处理
• 基本概念——事件
➢ 用户与系统交互而产生的键盘或鼠标动作称为 事件。
➢ 事件除了可以由用户单击鼠标等操作生成外, 也可以由程序代码或系统生成。
➢ 不同事件的类型由不同的类表示。在 java.awt.event包中定义了很多事件类,例如, ActionEvent、ItemEvent、MouseEvent、 KeyEvent等。
第13章 图形用户界面与事件处理
• Java的GUI类简介 • Java事件处理 • 布局管理器 • Swing组件的使用
2021/3/10
授课:XXX
1
13.1 Java的GUI类简介
➢ Java有两组GUI类:AWT(Abstract Windowing Toolkit)类及改进的 Swing类。
• AWT类简介
➢ 要创建GUI窗口,就需要编写一个继承自 Frame的子类,并进行实例化,然后调用父类 方法setVisible使其可见。
➢ 如果想在GUI窗口中增加一个按钮,则可实例化 Button类,然后调用Frame子类实例的add方 法添加到窗口中。
2021/3/10
授课:XXX
7
13.1 Java的GUI类简介
授课:XXX
3
13.1 Java的GUI类简介
➢ 带有GUI组件的框架:
2021/3/10
授课:XXX
4
13.1 Java的GUI类简介
➢ 常用的GUI组件(1)
2021/3/10
授课:XXX
5
13.1 Java的GUI类简介
➢ 常用的GUI组件(2)
2021/3/10
授课:XXX
6
13.1 Java的GUI类简介
➢ 对于每一种要处理的事件,都要定义监听类 (监听器),这个监听类应实现相应的监听器 接口;
➢ 事件源必须注册事件监听器,以便监听器可以 接收特定事件的通知。
➢ 事件源发生的事件对象只被传递给已经注册的 事件监听器。
2021/3/10
授课:XXX
20
13.2 事件处理
• 委托事件处理机制
➢ 注册监听器(Registering Listeners)的方法 如下:
2021/3/10
授课:XXX
12
13.1 Java的GUI类简介
• Swing类简介
➢ Swing的组件和容器层次
✓ 原子组件:是在图形用户界面中和用户进行交互 的组件。根据功能不同,可将其分为三类:
不可编辑信息的组件:JLabel、JProgressBar、 JToolTip;
输入信息的组件:JButton、JCheckBox、 JRadioButton、JComboBox、JTextField、JList、 JMenu、JSlider、JSpinner、JTexComponent等;
提供格式化信息并允许用户选择的组件:
JColorChooser、JFileChooser、JTable及JTree组件。
2021/3/10
授课:XXX
13
13.1 Java的GUI类简介
• 三层容器举例
2021/3/10
授课:XXX
14
13.1 Java的GUI类简介
• 三层容器举例
2021/3/10
➢ Java中的每种事件类都有一个对应的接口(称 为事件监听器接口),接口中声明了一个或多 个抽象的事件处理方法,凡是需要接收并处理 事件对象的类,都需要实现相应的接口。
2021/3/10
授课:XXX
18
13.2 事件处理
• 基本概念
2021/3/10
授课:XXX
19
13.2 事件处理
• 委托事件处理机制
➢ Swing的组件和容器层次 ✓ 顶层容器:JFrame、JDialog、JApplet。其他
组件都必须放在顶层容器上才能显现出来。 ✓ 中间层容器:作用是容纳其他组件,分为一般用
途和特殊用途两类。一般用途的有JPanel、 JScrollPane、JSplitPane、JTabbedPane、 JToolBar五类;特殊用途的有JInternalFrame、 JRootPane两类。
• addActionListener(ActionListener yourListener); • addMouseListener(MouseListener yourListener); • addWindowListener(WindowListener
改为 this.getContentPane().add(closeButton);
2021/3/10
授课:XXX
10
13.1 Java的GUI类简介
• Swing类简介
➢ SwingFrameWithButton类的定义
2021/3/10
授课:XXX
11
13.1 Java的GUI类简介
• Swing类简介
• AWT类简介
➢ 定义AWTFrameWithButton类
2021/3/10
授课:XXX
8
13.1 Java的GUI类简介
• AWT类简介
➢ 此框架存在两个问题: ✓ 首先,按钮填充了整个空间,外观有些奇怪; ✓ 其次,此框架无法检测到按钮,单击按钮时,
没有任何反应。
2021/3/10
授课:XXX
➢ AWT类是原始的Java GUI类,在 java.awt包中;
➢ Swing类对AWT类进行了扩充,在 javax.swing包中。
2021/3/10
授课:XXX
2
13.1 Java的GUI类简介
➢ Swing类的名称与AWT类的名称类似,但其名 称由字母J开头。
➢ GUI的类层次:
2021/3/10
2021/3/10
授课:XXX
16
13.2 事件处理
• 基本概念——事件源
➢ 产生事件的组件称为事件源。 ➢ 例如,单击按钮产生的事件由ActionEvent类
表示,称为ActionEvent事件,按钮就是事件 源。
2021/3/10
授课:XXX
17
13.2 事件处理
• 基本概念——事件监听器
➢ 事件监听器也称为事件监听者,是当一个事件 发生时被通知的对象,它负责接收对象,并进 行处理。