?? 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 + -