Java第06章--2(布局与事件处理)

合集下载

java 事件处理机制

java 事件处理机制

Java的事件处理机制是一种用于处理用户界面事件和输入事件的机制。

它允许程序员注册事件监听器并定义事件处理程序,以便在特定事件发生时自动调用这些处理程序。

在Java中,事件处理涉及三个主要组件:事件源:这是事件发生的对象,例如按钮或文本框。

事件监听器:这是实现了特定事件监听器接口的对象,该接口定义了事件发生时要调用的方法。

事件处理程序:这是在事件发生时自动调用的方法。

Java提供了许多预定义的事件监听器接口,例如ActionListener、KeyListener、MouseListener等,这些接口在java.awt和javax.swing包中定义。

要处理事件,程序员需要执行以下步骤:创建事件源对象,例如按钮或文本框。

创建实现了相应事件监听器接口的对象。

将事件监听器添加到事件源中。

这通常通过调用事件源的addXXXListener()方法完成,其中XXX是监听器接口的名称(例如ActionListener)。

在实现的事件监听器接口的方法中编写事件处理代码。

这些方法通常具有与接口名称相同的方法名,并在方法签名中包含事件源作为参数。

例如,ActionListener 接口定义了一个actionPerformed()方法,该方法在按钮被单击时被调用。

当事件发生时,事件源将自动调用相应的事件监听器方法,并传递一个包含有关事件信息的Event对象作为参数。

事件监听器方法可以根据需要使用此Event对象来获取有关事件的详细信息。

总之,Java的事件处理机制是一种灵活和可扩展的机制,它允许程序员轻松地处理各种用户界面和输入事件。

通过使用预定义的事件监听器接口和实现相应的方法,程序员可以轻松地编写事件处理代码,并确保在需要时自动执行它们。

Java语言与网络应用6-2常用组件及其事件处理3

Java语言与网络应用6-2常用组件及其事件处理3
(3)public int showSaveDialog(Component parent) (4)public File getSelectedFile()
JPanel类
1.JPanel常用的构造器方法 (1)JPanel() (2)JPanel(LayoutManager layout)
要使用文件框,必须引入javax.swing.filechooser.*包。 1.构造器方法JFileChooser() 2.JFileChooser常用的成员方法 (1)public void setCurrentDirectory(File dir)
(2)public int showOpenDialog(Component parent)
和使用 掌握自定义对话框(JDialog)的构造器方法及常用 方法的使用 能编写对话框程序应用程序.

标准对话框(JOptionPane)
JOptionPane可以显示三种形式的标准对话框
1. 标准信息显示对话框 2. 标准信息提示对话框 3. 标准信息输入对话框
1 标准信息显示对话框
实战演练
完成一个简单计算器,要求具备windows系统中计 算器的界面和功能。
小结
1. 2. 3. 4. 标准对话框(JOptionPane)及其使用 自定义对话框(JDialog)及其使用 文件框(JFileChooser)及其使用 容器(JPanel)及其使用
标准信息显示对话框,只有1个确定按钮
• 其主要作用是显示信息。当按下确定键后,系统会关闭
该对话框。并不返回任何值。
OptionPane.showMessageDialog(Component
parent,Object message,String title, int type)

java事件处理机制的基本原理

java事件处理机制的基本原理

java事件处理机制的基本原理
Java事件处理机制是基于事件监听器(EventListener)和事件
源(EventSource)的机制。

事件源是触发事件的对象,例如按钮、窗口等。

当事件源上发生某个事件时,事件源会创建一个对应的事件对象,并将该事件对象传递给监听器。

事件监听器是处理特定事件的对象,它实现了对应事件监听器接口。

例如,按钮点击事件的监听器需要实现ActionListener
接口。

当事件源触发事件时,它会将该事件对象传递给所有注册了监听器的对象,监听器会根据事件对象中的信息执行相应的操作。

基本原理如下:
1. 事件源注册监听器:事件源通过调用addXXXListener()方法,将监听器注册到事件源上。

2. 事件源触发事件:当事件源上发生了特定事件(例如按钮被点击),它会创建一个对应的事件对象,并将该事件对象传递给所有注册了监听器的对象。

3. 监听器接收事件:注册了监听器的对象会收到事件对象,并根据事件对象中的信息执行相应的操作。

4. 事件处理:监听器根据事件对象中的信息,执行一系列操作来处理事件。

事件处理机制的优点是低耦合性和可扩展性。

事件源和监听器
是通过接口进行交互,使得它们之间没有强制的依赖关系,从而实现了低耦合性。

同时,事件监听器机制支持多个监听器同时监听同一个事件源,可以方便地扩展和修改事件的处理方式。

Java语言程序设计(第3版)(2018年清华大学出版社出版

Java语言程序设计(第3版)(2018年清华大学出版社出版

作者简介
沈泽刚,1964年生,男,汉族,渤海大学信息科学与技术学院副教授、硕士生导师,研究方向为计算机应用 技术。
谢谢观看
2018年4月1ห้องสมุดไป่ตู้,该教材由清华大学出版社出版。
内容简介
全书共18章,主要内容如下:
第1章介绍Java语言的起源和发展、Java开发环境的构建、简单Java程序的开发和运行、程序设计风格与文 档以及集成开发环境Eclipse的使用。
第2章介绍数据类型、常用运算符、表达式以及数据类型的转换等。
第3章介绍程序的流程控制结构,包括选择结构和循环结构。重点介绍if结构、switch结构、while循环、 do-while循环以及for循环结构。
Java语言程序设计(第3版)(2018 年清华大学出版社出版
2018年清华大学出版社出版的图书
01 成书过程
03 教材目录 05 教材特色
目录
02 内容简介 04 教学资源 06 作者简介
《Java语言程序设计(第3版)》是由沈泽刚主编,2018年清华大学出版社出版的21世纪高等学校计算机类 课程创新规划教材。该教材可作为高等院校计算机专业或相关专业的“Java程序设计”或“面向对象程序设计” 课程的教材,也可作为Java认证考试及编程爱好者的参考资料。
第7章介绍类的继承与多态,其中包括继承性、封装性、多态性以及对象转换等。
第8章介绍Java常用核心类,包括Object类、Math类、基本数据类型包装类等,另外介绍了Java8新增的日 期-时间API相关的类。
教材目录
(注:目录排版顺序为从左列至右列 )
教学资源
该教材有配套教材——《Java语言程序设计(第3版)学习指导与习题解析》,书中提供了学习指导、实训 任务及编程练习的参考答案。

解析JAVA程序设计第六章课后答案

解析JAVA程序设计第六章课后答案

第6章习题解答1.简述Java中设计图形用户界面程序的主要步骤。

对于设计图形用户界面程序而言,一般分为两个步骤:第一步,设计相应的用户界面,并根据需要对相关的组件进行布局;第二步,添加相关的事件处理,如鼠标、菜单、按钮和键盘等事件。

2.试说明容器与组件之间的关系。

组件(component)是图形用户界面中的各种部件(如标签、按钮、文本框等等),所有的组件类都继承自JComponent类。

容器(container)是用来放置其他组件的一种特殊部件,在java中容器用Container类描述。

3.阅读下面程序,说明其运行结果和功能。

//filename:MyFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrame{public static void main(String agrs[]){JFrame f=new JFrame("简单窗体示例");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel l=new JLabel("习题1");f.getContentPane().add(l,BorderLayout.CENTER);f.pack();f.setVisible(true);}}程序的运行结果如下:4.阅读下面程序,说明其运行结果和功能。

//filename:TestButton.javaimport java.awt.*;import javax.swing.*;public class TestButton extends JFrame{JButton b1,b2;TestButton(String s){super(s);b1=new JButton("按钮1");b2=new JButton("按钮2");setLayout(new FlowLayout());add(b1);add(b2);setSize(300,100);setVisible(true);}public static void main(String args[]){ TestButton test;test=new TestButton("测试按钮"); }}程序的运行结果如下:5.阅读下面程序,说明其运行结果和功能。

java语言程序设计第6章

java语言程序设计第6章
同父类的异常统一处理,也可区分不同的异常分别处理,使用非常灵活。
第6章 常见错误和异常处理
6.2.2 Exception类
Java语言的异常类是处理运行时错误的特殊类,每一种异常类对应一种特定 的运行错误。所有的Java异常类都是系统类库中的Exception类的子类 。 Exception类有若干子类,每一个子类代表了一种特定的运行时错误。这些 子类有些是系统事先定义好并包含在Java类库中的,称为系统定义的运行异 常。 系统定义的运行异常通常对应着系统运行错误。由于这种错误可能导致操作 系统错误甚至是整个系统的瘫痪,所以需要定义异常类来特别处理。 常见的系统定义异常如下: (1)ArithmeticException:数学错误。 (2)ArrayIndexOutOfBoundsException:数组下标越界使用。 (3)ClassNotFoundException:未找到欲使用的类。 (4)FileNotFoundException:未找到指定的文件或目录。
第6章 常见错误和异常处理
6.2.4 多异常的处理
如果所有的catch语句都不能与当前的异常对象匹配,则说明当前方法不能 处理这个异常对象,程序流程将返回到调用该方法的上层方法。如果这个上 层方法中定义了与所产生的异常对象相匹配的catch语句,流程就跳转到这 个catch语句中,否则将继续回溯更上层的方法。 如果所有的方法中都找不到合适的catch语句,则由Java运行系统来处理这 个异常对象。此时通常会中止程序的执行,退出虚拟机返回操作系统,并在 标准输出上打印相关的异常信息。 如果try语句体中所有语句的执行都没有引发异常,则所有的catch语句体都 会被忽略而不予执行。 catch语句体中的语句应根据异常的不同而执行不同的操作,比较通用的操 作是打印异常和错误的相关信息,包括异常名称、产生异常的方法名等。 由于异常对象与catch语句的匹配是按照catch语句的先后排列顺序进行的, 所以在处理多异常时应注意认真设计各catch语句的排列顺序。一般来说, 将处理较具体和较常见的异常的catch语句应放在前面,而可以与多种异常 相匹配的catch语句应放在较后的位置。此外,不能将子类异常的catch语句 放在父类的后面,否则在编译时会产生错误。

java事件处理PPT课件

java事件处理PPT课件

11.1 事件处理机制
先了解“事件”、“事件源”、“事件处理”及 “事件监听”的含义,再遵循一套固定的模式把 事件处理机制应用起来。 示例程序演示…(EventDemo.java)
11.1.1 Java的事件处理机制
事件:
用户在图形界面上进行的各种操作,如按下按钮、选 中下拉列表的某一项、点击某个菜单项…
按钮、菜单、双击列表 控件状态改变 控件加入或删除 复选框、列表、复选菜单 键盘输入 鼠标输入 鼠标拖拽 文本区文本改变 Window状态改1变0
11.1.2 事件处理类和接口(部分)
Event 类
ActionEvent ComponentEvent
FocusEvent ItemEvent WindowEvent TextEvent MouseEvent
事件源:
发生事件的这个东东,如按钮、下拉列表…
11.1.1 Java的事件处理机制-2
事件监听:
进行监视,随时准备着,一旦有事件发生,马上通知 对应的“负责人”来处理。
事件处理:
处理事件的“负责人”! 实际上,Java已经把所有 可能发生的事情都分析好了,已经给每个事件都定义 了专门处理它的类和接口,所有事件处理的类和接口 都在java.awt.event包中。
谁出事儿了? 想让程序对用户的哪些操作做出反应?明确事件 源!比如btnOK,exitItem… 谁负责?给他派任务! Java规定这种事件由哪个接口负责处理,就自定 义一个类实现该接口。在相应的方法体里把事件 该如何处理写清楚。 安排一个有能力处理的人随时盯梢~ 用这个自定义类创建对象,给事件源添加事件监 听,指明事件发生时找该对象处理。
}
catch(Exception e)

Java中的GUI界面设计和事件处理入门

Java中的GUI界面设计和事件处理入门

Java中的GUI界面设计和事件处理入门一、引言Java是一种面向对象的编程语言,具有广泛的应用领域。

在软件开发过程中,GUI界面设计和事件处理是非常重要的一部分。

本文将介绍Java中的GUI界面设计和事件处理的入门知识,以帮助读者了解和掌握这方面的技术。

二、GUI界面设计基础GUI(Graphical User Interface,图形用户界面)是指通过图形、图像和动画等方式来显示信息,提供用户与计算机之间的交互。

在Java中,可以使用Swing和JavaFX等库来进行GUI界面设计。

1. 布局管理器在GUI界面设计中,布局管理器用于管理组件的布局方式。

Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout和GridBagLayout等。

使用不同的布局管理器可以实现不同的界面布局效果。

2. 组件组件是GUI界面的基本元素,可以是按钮、文本框、标签、列表框等。

在Java中,可以使用JButton、JTextField、JLabel和JList等类来创建各种组件。

可以设置组件的属性,如大小、位置和样式等。

3. 事件监听器事件监听器用于捕捉用户操作产生的事件,并做出相应的处理。

在Java中,可以使用addActionListener()方法为组件添加监听器,响应用户的点击事件。

事件监听器可以以匿名内部类的形式实现,也可以作为单独的类来处理。

三、GUI界面设计实例下面以一个简单的登录界面为例,介绍如何使用Java中的GUI 界面设计来创建一个具有交互功能的窗体。

1. 导入必要的类库首先需要导入javax.swing和java.awt等类库,以便使用其中的类和方法。

2. 创建窗体可以通过继承JFrame类来创建一个窗体对象,然后设置窗体的标题、大小和关闭方式等属性。

3. 添加组件可以使用JLabel、JTextField和JButton等组件类来创建对应的界面元素,并设置它们的属性和布局。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个例子:例6.7,P365:FlowLayoutDemo.java
4、外观的管理与控制 ——BorderLayout
BorderLayout布局方式提供了更复杂的布局控制方法,它 包括5个区域:North, South, East, West和Center,其方位依据 上北-下南-左西-右东。当容器的尺寸发生变化时,各组 件的相对位置不变,但中间部分组件的尺寸会发生变化,南 北组件的高度不变,东西组件的宽度不变。 BorderLayout类有二种构造方法:
public BorderLayout()
各组件间的水平和竖直间距为缺省值0个象素。
public BorderLayout(int horizontalGap, int verticalGap)
West
North East Center South
各组件间的水平和竖直间距为指定值。
例子:例6.8,P370:BorderLayoutDemo.java
4、外观的管理与控制 ——CardLayout
CardLayout类有二种构造方法:
public CardLayout()
组件距容器左右边界和上下边界的距离为缺省值0个象素。
public CardLayout(int horizontalGap, int verticalGap)
组件距容器左右边界和上下边界的距离为指定值。 与BorderLayout类和GridLayout类相类似,每张牌中只能放置 一个组件,如果想在一张牌放置多个组件,则必须先在该牌放 一个容器,再将多个组件放在该容器中。 采用CardLayout布局方式时,向容器中添加组件时可以为组 件取一个名字,以供更换显示组件时使用: add(String, Component);
4、外观的管理与控制 ——GridBagLayout
GridBagLayout布局方式是AWT中最灵活、同时也是最复杂的 一种布局方式。与GridLayout相同,它也是将容器中的组件按照 行、列的方式放置,但各组件所占的空间可以互不相同。 GridBagLayout根据对每个组件所施加的空间限制、每个组件 自身所设定的最小尺寸和最佳尺寸来为每个组件分配空间。对组 件施加空间限制是通过类GridBagConstraints(有很多静态字段) 来实现的。 每个构件后都跟随一个GridBagLayout对象实体, 来决定构件 的外观. 创建:GridBagLayout myLayout=new GridBagLayout();
§6.5
事件与事件处理
5、事件与事件处理
事件是一个描述正在发生事情的对象,它用来描述发生在 用户界面上的、用户与程序或系统之间交互行为的各种活动。 如鼠标的各种动作、键盘的操作以及发生在组件上的各种动 作,因此事件一般也分为三种类型:键盘事件、鼠标事件以及 组件的动作事件(对鼠标或键盘事件在一定程度上进行了封 装)。 Java定义了许多不同种类的class类型,用来描述用户不同 种类动作的事件类,例如,描述按钮、文本域和菜单等组件动 作的ActionEvent类,还有描述窗口事件的WindowEvent类等, 并按照面向对象程序设计的思想方法进行抽象归纳成一个类层 次结构系统。 每发生一个事件,程序都需要作出相应的响应,这称为事件 处理。在JDK1.0和1.1以后的版本中,事件表示以及事件的处 理是采用2种不同的方式来完成的。
• 边框式布局方式通常不单独使用,而是与流程式布局的面 板配合使用.
4、外观的管理与控制 ——GridLayout
GridLayout布局方式可以使容器中的各组件呈网格状分布。 容器中各组件的高度和宽度相同,当容器的尺寸发生变化 时,各组件的相对位置不变,但各自的尺寸会发生变化。 各组件的排列方式:从左到右,从上到下。 与BorderLayout类相类似,如果想在一个网格单元中添加 多个组件,则必须先在该网格单元放一个Panel容器,再将多 个组件放在该Panel容器中。 适用于象电子表格、日历和计算器等场合的布局.
4、外观的管理与控制 ——GridBagLayout
当一个容器的布局方式为GridBagLayout时,在往其中添加一个 组件前,必须先用GridBagConstraints设置该组件的空间限制。 //在一个容器中 GridBagLayout g = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setLayout( g ); Button b = new Button(“Test”); //生成组件b c.fill = … //设置c的各种属性值 …… g.setConstraints( b, c ); / *根据c的各种属性值对组件b进 行空间限制 */ add( b );
• 第1步:在主窗口或者一个面板组件的构造方法体内,创 建每个子组件,包括它们的外观和属性; • 第2步:在创建了内容窗格之后,把内容窗格的布局管理 器设置成流程式,即通过内容窗格调用Container类提供 的setLayout(),把内容窗格的布局设置为流程式布局管 理器; • 第3步:调用Container类提供的add()方法把一个个子组 件添加到父容器中; • 对 Swing 按 钮 组 件 调 用 其 父 类 AbstractButton 提 供 的 addActionListener()方法,把动作监听器注册到按钮组 件(事件源)中 。 – 在事件驱动控制中使用匿名内部类
Hale Waihona Puke GridLayout类有三种构造方法:
public GridLayout()
在一行中放置所有的组件,各组件间的水平间距为0象素。
public GridLayout(int rows, int cols)
生成一个rows行,cols列的管理器。实际计算时只取行数。 rows或cols可以有一个为0。若rows为0,这表示每行放置cols 个组件,网格式布局管理器会自动根据具体组件数,计算出行 数;若cols为0,这表示共有rows行,网格式布局管理器会根据 具体组件数,每行可以放置任意多个组件。 组件间的水平和竖直间距为0象素。
public GridLayout(int rows, int cols, int horizontalGap, int verticalGap )
各组件间的水平和竖直间距为指定值。
例子:例6.9,P373:GridLayoutDemo.java
4、外观的管理与控制 ——CardLayout
CardLayout布局方式可以帮助用户处理两个或更多的组件共 享同一显示空间。共享空间的组件之间的关系就像一摞牌一 样,它们摞在一起,只有最上面的组件是可见的。 CardLayout 可以象换牌一样处理这些共享空间的组件:为每张牌定义一个 名字,可按名字选牌;可以按顺序向前或向后翻牌;也可以直 接选第一张或最后一张牌。 public void show(Container parent, String name) public void next(Container parent) public void previous(Container parent) public void first(Container parent) public void last(Container parent) 其中,Container是拥有该CardLayout布局管理器的容器。
容器
布局管理器
4、外观的管理与控制
在程序中安排组件的位置和大小时,应注意: 容器中布局管理器负责各组件的大小和位置,用户无法在 这种情况下设置组件的这些属性,如试图调用setLocation(), setSize(), setBounds()等。 如果用户确实需要自己设置组件的大小和位置,则应取消 该容器的布局管理器,方法为: setLayout(null) 但用户必须使用setLocation(), setSize(), setBounds()等方法 为组件设置绝对的大小和位置,因而,这样的程序将与系统 相关。(这种组件的布局方式称为“绝对布局方式” )
Java技术基础
彭刚 penggang@
第六章
图形用户界面 与事件处理
内容提要:
1、图形用户界面概况 2、使用AWT(Abstract Window Toolkit)组件 3、使用Swing组件 4、外观的管理与控制 5、事件与事件处理 6、各种组件介绍
§6.4
边框布局方式的特点
• 与流程式布局方式不同,边框式布局具有如下特点:
– (1)并不对每个子组件进行完全、准确的定位控制,只是决定该子 组件应放在哪个区域,且每个区域只能放一个组件,即使编程者 在一个区域放入多个组件,则新放入的组件将替代原来的组件。 – (2)放在北、南、东和西等4个区域的子组件沿着父容器边框摆 放,处于中央区域的子组件比其他区域的尺寸要大, – (3)若某个区域没有摆放子组件或被隐藏起来,如图6.31所示其他 区域的子组件将覆盖该区域。
4、外观的管理与控制 ——GridBagLayout GridBagLayout是获取GridBagConstraints实例中 的值为某个组件设置了空间限制,当往容器中添加 了该组件后,该GridBagConstraints实例还可继续用 于其他组件,当然其中值需要做相应的调整。
GridBagWindow.java
4、外观的管理与控制
java.awt类包中包含五种布局管理器:
FlowLayout:Panel和Applet的缺省布局管理器 BorderLayout:Window、Dialog和Frame的缺省布局管理器 GridLayout CardLayout GridBagLayout
流程式布局管理器编程要点
5、事件与事件处理 ——JDK1.0的事件处理
在JDK 1.0中,是采用一种叫做事件传递的机制来处理发生 在用户界面上的事件。这是一种“分层结构的事件模型” ( Hierarchical event model ) 。 在 AWT 组 件 中 , 都 从 Component中继承了与事件处理有关的方法: action(Event e, Object arg):处理动作事件 handleEvent(Event e):处理低级键盘事件和鼠标事件 每个组件都可以用上述方法处理发生在自己上面的事件, 同时,也可以不作处理,而是交给包含它的容器去处理,并 且可以一层一层往上传递,直到最顶层容器。不论哪种方 法,都需要继承已有的AWT组件,生成其子类,在子类中重 写上述方法来对事件进行处理。
相关文档
最新文档