📄 java入门(12) 事件与错误处理.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0063)http://www.java-cn.com/technology/technology_detail.jsp?id=1666 -->
<HTML><HEAD><TITLE>欢迎光临JAVA中文站-文章详细信息</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="Java入门(12) 事件与错误处理.files/style.css" rel=stylesheet>
<STYLE type=text/css>TD {
FONT-SIZE: 9pt; FONT-FAMILY: 宋体
}
TH {
FONT-SIZE: 9pt; FONT-FAMILY: 宋体
}
INPUT {
FONT-SIZE: 9pt; FONT-FAMILY: 宋体
}
.menuStyle {
FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: Arial,Geneva,Verdana,Helvetica
}
</STYLE>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<DIV align=center>
<CENTER><BR>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 height=149
cellSpacing=0 cellPadding=4 width=669 border=0>
<TBODY>
<TR bgColor=#f3fcf3>
<TD
style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid"
align=middle width=659 height=34>
<CENTER><IFRAME marginWidth=0 marginHeight=0
src="Java入门(12) 事件与错误处理.files/ad1.htm" frameBorder=0 width=440
scrolling=no height=59></IFRAME></CENTER></TD></TR>
<TR>
<TD
style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid"
vAlign=top width="100%" height=11>
<P align=left><FONT color=#7a7978>文摘分类>> </FONT><FONT
color=#999999>编程基础 | </FONT><FONT color=#7a7978>阅读次数>>
</FONT><FONT color=#999999>397 | </FONT><FONT
color=#7a7978>推荐人数>> </FONT><FONT color=#999999>0 |
</FONT><FONT color=#7a7978>整理日期>> </FONT><FONT
color=#999999>2003-03-07</FONT></P></TD></TR>
<TR bgColor=#f3fcf3>
<TD
style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid"
align=middle width=659 bgColor=#ffffff height=38><B>Java入门(12) 事件与错误处理</B>
<HR color=#999999 noShade SIZE=1>
<P align=left>摘要
<BR><BR> 通过本章的学习,读者应能够了解Java语言中复杂的事件处理与错误处理。理解它们的概念,知道它们的工作流程,为今后学习打下基础。
<BR><BR>(2002-09-16 13:39:28)
<BR><BR>--------------------------------------------------------------------------------
<BR>By Wing, 出处:fjxufeng <BR><BR><BR> 本章目标:
<BR><BR> 通过本章的学习,读者应能够了解Java语言中复杂的事件处理与错误处理。理解它们的概念,知道它们的工作流程,为今后学习打下基础。
<BR><BR> 12.1事件处理 <BR><BR> 传授新知
<BR><BR> 消息驱动、事件处理是面向对象编程技术的主要特点,它一改过程语言的顺序执行,整个程序以程序代码为主线地思想,而是变成了由用户,使用程序的用户为主线的思想。
<BR><BR> 通俗地说,以前的程序设计思想中,整个程序的运行流程是以程序本身为主的,整个运行流程是在程序中预定义的。而在面向对象的程序设计思想中,则是让用户来掌握主动权,整个运行流程是由用户来决定的。应用程序一旦构建完GUI后,它就不再工作,而是等待,等待用户通过鼠标、键盘给它通知(消息驱动),它再根据这个通知的内容进行相应的处理(事件处理)。
<BR><BR> 我们来回顾一下,在我们讲解使用“按钮”时,曾经在程序中使用过这样的一段程序:
<BR><BR><BR>button1.addActionListener(new ActionListener() <BR>{
<BR>public void actionPerformed(ActionEvent evt) <BR>{
<BR>Toolkit.getDefaultToolkit().beep(); <BR>} <BR>});
<BR><BR><BR><BR> 当时,我们已经对它的功能做了描述:首先为按钮buuton1增加了一个事件监测器,这个事件监测器用来监测按钮是否按下(ActionEvent)。另外,我们还编写了一个事件处理的程序段:
<BR><BR><BR>public void actionPerformed(ActionEvent evt) <BR>{
<BR>Toolkit.getDefaultToolkit().beep(); <BR>}
<BR><BR><BR><BR> 当按钮按下时,就会执行这个程序段,也就执行了Toolkit.getDefault.Toolkit().beep()方法,即响了一声铃。
<BR><BR> 在程序中要编写“事件处理”程序段时,通常可以分为以下几个步骤来做: <BR><BR> 1.确定事件类型
<BR><BR> 几乎用户使用鼠标、键盘做的每一个动作都会引起一个消息,也就是会引发一个事件,但我们并不是要对这些所有的事件都做出反应,有些事件并不是我们所关心的。对于不同的部件,我们需要关心的事件往往不同。下表中列出了最常用到的几个事件。
<BR><BR> 部件 事件类型 事件描述 <BR><BR> JButton ActionEvent 按下了按钮
<BR><BR> CheckBox ActionEvent 选择或取消选择复选框 <BR><BR> JTextField ActionEvent
用户输入文本输入回车键 <BR><BR> 表12-1 常用部件-事件一览表 <BR><BR> 2.为部件增加一个该事件的监测器
<BR><BR> 每一种事件类型都有一个相应的接口,通常名为XXXListener,其中XXX代表它所处理的事件类型。这些接口包含在java.awt.event和javax.swing.event包中。例如:
<BR><BR><BR>button1.addActionListener(new ActionListener() <BR>{ <BR>……
<BR>}); <BR><BR><BR><BR> 3.增加事件处理程序 <BR><BR> 最后,我们就要往里面增加血肉,实际的事件处理程序。
<BR><BR> 正如你所看到的一样,编写事件处理程序并不是一件简单的事,要写好事件处理程序更不是那么简单。由于本书是一本Java的入门性书籍,所以并没有把每个部件的全部事件都列举出来,做一个一一讲解。在此,只求大家能够通过学习对事件处理过程有一个粗略地了解,以便大家能够学习、研究各种与事件处理相关的知识。
<BR><BR> 实例说明
<BR><BR> 我们曾经在第10章中使用过Frame来构建小应用程序,当时我们可以看到程序执行时是新弹出了一个窗口,也就是一个Frame,这个Frame有最大化、最小化、关闭按钮。不知各位读者是否注意到,在这个Frame中呢,关闭按钮并没有生效,这是因为在程序中并未定义对这个事件的处理。下面我们来看一段程序,看一下它是如何使这个关闭按钮生效的。根据惯例,我们首先创建一个源程序:
<BR><BR> 源程序:closeTest.java <BR><BR><BR>import javax.swing.*; <BR>import
java.awt.*; <BR>import java.awt.event.*; <BR>public class closeTest <BR>{
<BR>public static void main(String args[]) <BR>{ <BR>Frame frame1=new
Frame("This is a Frame"); <BR>frame1.addWindowListener(new WindowAdapter()
<BR>{ <BR>public void windowClosing(WindowEvent e) <BR>{
<BR>System.exit(0); <BR>} <BR>}); <BR>frame1.setSize(200,200);
<BR>frame1.show(); <BR>} <BR>}
<BR><BR><BR><BR> 这是一个Java的应用程序,我们首先使用javac编译,然后执行: <BR><BR><BR>java
closeTest <BR><BR><BR><BR> 来执行这个程序,程序的输出极为简单: <BR><BR><BR> 图12-1
程序closeTest.java的输出 <BR><BR> 一些提示:
<BR><BR> 这个程序也从侧面说明了,我们在Java的应用程序中也可以使用GUI界面,虽然我们一直使用Java小应用程序(Applet)来举例。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -