Java Applet 與事件處理 ShengMinMa.

Slides:



Advertisements
Similar presentations
E-portfolio 個人履歷網站教學
Advertisements

3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
第一單元 建立java 程式.
Excel –格式設定 資訊教育.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
Java Applet的运行原理 在网页向Java Applet传值 在Java Applet中播放声音 在Java Applet中使用组件
第11章 Java多媒体技术.
第12章 繪圖與多媒體 12-1 繪圖的基礎 12-2 Graphics類別的色彩、文字與繪圖 12-3 圖片的載入與顯示
2015/Spring 跨平台行動程式進階應用 王派洲老師
第 18 章 圖形使用者介面.
Ch06 人機介面_視窗程式設計(2) 物件導向系統分析與設計.
Ch02 視窗Swing套件 物件導向系統實務.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
Ch07 Java Applets 物件導向系統實務.
Q101 在701 SDX Linux上的標準安裝與使用程序v2
JDK 安裝教學 (for Win7) Soochow University
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
第 7 章 設定網頁背景與音樂.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
JAVA 2 新觀念教本 ---邁向SCJP專業認證--- 易瓏資訊 林新德 著.
Java语言程序设计 第八部分 Applet小程序.
安裝JDK 安裝Eclipse Eclipse 中文化
網頁切換移轉 JS vs. ASP.NET.
Merge Partners’ programs by Matlab
Quiz6 繳交期限: 12/14(四) 23:59前.
AWT Event Model.
檔案與磁碟的基本介紹.
系統設定 IE8相容性檢視
Ch04 事件處理 物件導向系統實務.
CH03 為自己的視窗加上小元件 物件導向系統實務.
Java 程式設計 講師:FrankLin.
網頁切換移轉 JS vs. ASP.NET.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
事件處理.
第一單元 建立java 程式.
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
Ch20. 計算器 (Mac 版本).
Multithread 多執行緒 以GUI為例了解物件以及Event
《JAVA程序设计》 语音答疑 辅导老师:高旻.
第 19 章 XML記憶體執行模式.
HTML – 超連結與圖片 資訊教育.
表格(HTML – FORM).
GridView.
GridView操作 (II).
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
HelloPurr_Extend 靜宜大學資管系 楊子青
Flash 8:開口中 從Y:\ 複製『開口中.fla』到 D:\ 更改名稱為:s3x99 (你的班號) 雙按開啟檔案 2019年5月7日
MicroSim pspice.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
PowerPoint 操作介紹 106 計算機概論
Dreamweaver 進階網頁製作 B 許天彰.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
實驗十:影片播放.
Brief Guide of FrontPage
Quiz1 繳交期限: 9/28(四).
Java语言程序设计 清华大学出版社 第6章 java图形与图像处理.
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
小畫家教學 電子版儲存於 學校網頁/學科資訊/電腦科
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
Applet.
第五章 自訂佈景主題與文字處理 講授者:詹雅愔.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
Unix指令4-文字編輯與程式撰寫.
InputStreamReader Console Scanner
Presentation transcript:

Java Applet 與事件處理 ShengMinMa

Outline Java Applet 的基礎 建立Java Applet AWT套件的GUI元件 Java Applet 的繪圖

Java Applet 的基礎 Applet類別是定義在java.applet套件,提供建立Java Applet所需的方法。 Java Applet的外觀就是在Panel元件上繪出的圖形,文字或GUI元件 Java Applet並不是完整的Java程式, 所以並不能在命令提示字元視窗執行, 而是需要透過Applet檢視器,或瀏覽 程式來執行Java Applet。

Java Applet 的基礎 下圖圖例在伺服端的Java Applet已經編譯成.class類別檔,HTML網頁使用<applet>標籤嵌入Java Applet類別檔。 客戶端只需瀏覽程式支援JVM,再請求伺服端擁有Java Applet的網頁時,*.class和*.html檔案都會下載到客戶端,然後在瀏覽程式執行Java Applet來顯示網頁內容。

Java Applet 的基礎 <applet>標籤 <param>標籤 <applet>標籤可以將Java Applet嵌入網頁 基本語法: <applet code=“class_name” width=value height=value> … </applet> 說明: Code 屬性:Java applet 的類別檔案名稱。 Width 屬性:Java applet尺寸的寬。 Height 屬性 : Java applet尺寸的高。 <param>標籤 <param>標籤是用來傳遞參數給Java Applet <param name=“para_name” value=value> Name 屬性:參數名稱。 Value 屬性:參數值。

建立Java Applet Java Applet 程式是繼承自Applet類別,然後實作或覆寫Applet的方法,這個新類別就是Java Applet程式。 在Java Applet程式的開頭匯入Applet和Graphics套件,類別實作paint()方法,及drawString方法。 範例Ch16_2_1.java 方法 說明 Void drawString(String,int,int) 顯示參數String字串的內容,後面兩個參數分別是位置座標x和y的值。 Void paint(Graphics) Applet的顯示方法,繼承自Container類別方法,可以Panel物件上繪出Java Applet顯示的圖形或文字。

建立Java Applet Java Applet的執行過程:下表四個方法是瀏覽程式或Applet檢視器執行Java Applet的初始,開始,停止和善後的四個過程。 方法 說明 Void init() 當瀏覽程式或Applet檢視器載入和建立Java Applet時,呼叫此方法。 Void start() 開始Java Applet的執行,當載入Applet或是使用者進入一頁內含applet的網頁時,呼叫此方法 Void stop() 停止Java Applet的執行,當使用者離開包含Applet的網頁或結束瀏覽程式的執行時,呼叫此方法。 Void destroy() 當離開瀏覽程式時呼叫此方法,這各方法是用來執行最後的善後操作。

void drawRect(int,int,int,int) 建立Java Applet Java Applet可以使用repaint()方法重繪Java Applet,也可使用繼承自Component類別的getSize()方法取得Java Applet的尺寸。 如: recWidth=getSize().width; 或 recWidth=getWidth(); recHeight=getsize().Height 或 recHeight=getHeight(); Graphics的繪圖方法: (範例Ch16_2_2.java) 方法 說明 void drawRect(int,int,int,int) 繪出長方形,前兩個int參數是左上角座標(x,y),後兩個分別為長方形的寬和高 void repaint() 重新繪出容器元件的圖形,以本章為例,就是重繪Java Applet。

建立Java Applet 將參數傳遞給Java Applet: 在HTML文件可以使用<param>標籤傳遞參數給Java Applet,如果<applet>標籤擁有<param>標籤,在Java Applet是使用getParameter()方法取得傳如參數。 Inc = Integer.parseInt(getParameter(“INC”)); Offset = Integer.parseInt(getParameter(“OFFSET”)); 繪出具色彩的圖形: void setColor(Color):設定目前使用的色彩,參數是Color的色彩物件。 void fillRect(int,int,int,int):繪出一個填滿色彩的長方形,前兩個int參數是左上角座標(x,y),後兩各分別為長方形的寬和高。 常用色彩物件常數:Color.white Color.black Color.red Color.green Color.blue Color.yellow Color.lightGray 範例:Ch16_2_3.java

AWT套件的GUI元件 Java API類別函式庫【AWT】(Abstract Window Toolkit)提供基本的GUI圖形介面的元件。 在Panel物件新增GUI元件是使用繼承自Container類別方法,如下所示: void add(Component):新增GUI元件到Java Applet,參數是GUI元件。 void remove(Component):從Java Applet移除GUI元件,參數是GUI元件。 AWT提供選擇功能的元件有:Checkbox,CheckboxGroup,Choice,和List元件。 AWT提供文字輸入功能的元件有:TextField和TextArea元件,其他常用元件還有【文字說明】的Label和【按鈕】的Button元件。

AWT套件的GUI元件 選擇功能元件 Checkbox元件是核取方塊,按一下可以更改狀態值。 Checkbox checkBox = new Checkbox(“是否顯示”,true); CheckboxGroup元件是選擇紐,一組選擇紐,只能有一個為True。 CheckboxGroup group = new CheckboxGroup(); Checkbox red = new Checkbox(“紅” , group , true); Checkbox blue = new Checkbox(“藍”,group , false); Choice是下拉式清單元件,只顯示一個項目。 Choice color = new Choice(); color.add(“紅”); color.add(“藍”); color.add(“綠”);

AWT套件的GUI元件 選擇功能元件 文字輸入元件 List清單方塊元件是一各擁有捲動軸的清單。 如範例Ch16_3_1.java List list = new List(5,true); List.add(“平信”); List.add(“掛號”); List.add(“快遞”); List.add(“限時”); 如範例Ch16_3_1.java 文字輸入元件 TextField文字方塊元件允許輸入一行可捲動的文字,再建立物件十可以指定顯示寬度。 TextField text = new TextField(10);

AWT套件的GUI元件 文字輸入元件 文字說明元件 TextArea文字區域元件能夠輸入多行文字內容,再建立物件時,可以指定寬和高。 TextArea area = new TextArea(“”,10,30,TextArea.SCROLLBARS_HORIZONTAL_ONLY); 最後一個參數指定文字區域顯示的捲動軸,相關常數如下: SCROLLBARS_NONE:沒有捲動軸 SCROLLBARS_HORIZONTAL_ONLY:只有水平捲動軸 SCROLLBARS_VERTICAL_ONLY:只有垂直捲動軸 SCROLLBARS_BOTH:擁有水平及垂直捲動軸 文字說明元件 Label標籤元件是在GUI介面上顯示文字內容。 Label label = new Label(“使用者名稱:”);

AWT套件的GUI元件 按鈕元件 如範例Ch16_3_2.java Button按鈕元箭是一各按鈕,使用滑鼠按一下可以產生事件。 Button button = new Button(“確定”); 如範例Ch16_3_2.java

Java Applet的繪圖 Java Applet除了可以新增AWT的GUI元件外,我們還可以在Java Applet上繪圖、載入和顯示現成的圖片檔案。 在Graphics類別提供以下方法繪圖: void drawLine(int,int,int,int) 繪線函數,分別為起點(x,y)與終點(x1,y1) void draw3DRect(int,int,int,int,boolean) 繪方形凹凸面函數,分別為起點(x,y)與終點(x1,y1),true為凹。 void drawRoundRect(int,int,int,int,int,int) 繪圓角方形函數,分別為起點(x,y)與終點(x1,y1),圓角弧度的水平及垂直尺寸。 void drawOval(int,int,int,int) 繪圓函數,圓形是存在於方形之內,分別為左上角座標及寬和高。 void drawArc(int,int,int,int,int,int) 繪弧函數,弧形是存在於方形之內,同上參數說明,最後兩個則是起點角度與終點角度。

Java Applet的繪圖 在Graphics類別提供以下方法繪圖: void drawPolyline(int[],int[],int) 前兩參數陣列座標繪出多邊形,最後一個參數是共有多少點。 上述draw開頭的繪圖方法都具有對應的fill開頭的方法,可以繪出填滿色彩的圖形。並且,指定前景與背景的色彩方法如下: void setBackground(Color) 設定背景色彩,參數為Color的色彩物件。 void setForeground(Color) 設定前景色彩,參數是Color的色彩物件。 如範例Ch16_4_1.java

Java Applet的繪圖 Java Applet的圖片載入 載入圖片: Image getImage(URL) URL參數為一物件,並且回傳至Image物件。 URL為一物件,可用其建購子傳入網址 getImage(new URL(www.kuas.edu.tw/~smma/abc.gif)); Image getImage(URL,String) 如果圖檔和網頁檔案是儲存在同一個路徑,則在URL物件上填入【getDocumentBase()】或【getCodeBase()】的函數回傳的物件作為URL物件。 Image image = getImage(getDocumentBase(),”abc.gif”);

Java Applet的繪圖 顯示圖片: 在載入圖片成為Image物件後,就可以使用Graphics類別的drawImage()方法顯示圖片,方法說明如下。 Boolean drawImage(Image,int,int,ImageObserver) 參數Image為已經載入圖片的Image物件,第二個、第三個參數為圖片放置的座標,ImageObserver直接使用this即可。 回傳值為false:表示失敗 回傳值為true:表示成功 如範例Ch16_4_2.java

Java的委託事件處理 Java應用程式的AWT元件屬於【事件驅動】程式設計,程式碼的主要目的是【回應】或【處理】使用者的操作。 如鍵盤輸入,滑鼠按一下 什麼是事件? 事件是再執行視窗應用程式時,滑鼠或鍵盤等操作所觸發的一些動作。 動作發生時可以觸發對應的物件,當一個事件產生後,接下來可以針對事件作處理。

Java的委託事件處理 Java SDK 1.1版的事件處理是一種【委託事件處理模型】,可分為【事件來源】(Event Source)和處理事件的【傾聽者】(Listener)的物件。 其中【事件來源】可能是 Component物件的滑鼠,滑鼠移動和鍵盤事件。 或是AWT物件產生的事件。 事件產生時,傾聽者接受事件然後進行處理,傾聽者是一個【委託處理指定事件】的物件。 Java語言是使用【介面】建立【委託事件處理模型】,傾聽者物件只要【實作】一些標準介面的類別物件。

Java的委託事件處理 如果沒有傾聽者物件委託處理此事件,當事件發生時,並不會發生任何事。 事件處理就是執行【介面的方法】 AWTEvent事件:【Java事件的來源物件】產生的事件就是一個物件,這些【事件物件】都屬於AWTEvent的子類別。其中分為兩種: 低階事件:一些基本輸入和視窗操作等相關物件。 語意事件:使用者與GUI元件互動遭作所產生的相關事件。

Java的委託事件處理 低階事件: ComponentEvent:當隱藏、移動、顯示和調整元件尺寸時。 ContainerEvent:新增或刪除元件時。 FocusEvent:元件取得或失去焦點時,當使用TAB鍵和滑鼠按鍵按一下該物件,就可以取得焦點。 KeyEvent:當鍵盤按鍵按下、鬆開和輸入字元時。 MouseEvent:滑鼠在元件上按一下,拖拉、移動、進入、離開、按下、鬆開。 WindowEvent:視窗操作的開啟、關閉、縮小圖示化等操作。 PaintEvent:相關的繪圖操作。 InputEvent:這是KeyEvent與MouseEvent的父抽象類別。

Java的委託事件處理 語意事件: ActionEvent :當按下按鈕,選擇清單方塊選項,數入文字方塊時按下Enter AdjustmentEvent:當移動捲動軸物件時。 ItemEvent:當選取核取方塊、選擇紐、下拉式清單方塊時。 TextEvent:輸入的文字內容改變時。

Java Applet與事件處理 Java Applet的GUI圖形介面可以新增【事件處理】,以便隨時準備處理各種事件。如 Mouse , Keyboard 和AWT所產生的事件。 滑鼠處理事件: Component(class)->MouseEvent->MouseListenerner->mouseClick(Method) or mousePressed or mouseReleased or mouseEntered or mouseExited ->Java Apple實作介面。 其中方法的參數為MouseEvent。 程式範例Ch16_6_1.java

Java Applet與事件處理 滑鼠拖拉處理事件: Component(class)->MouseEvent->MouseMotionListener->mouseDragged (Method) or mouseMoved->Java Apple實作介面。 其中方法的參數為MouseEvent。 取得滑鼠座標的方法是繼承MouseEvent的物件方法。 Int getX() 取得座標x Int getY() 取得座標y 程式範例Ch16_6_2.java

Java Applet與事件處理 鍵盤事件處理: Component(class)->KeyEvent->KeyListener->keyPressed(method) or keyReleased or keyTyped->Java Applet實作介面。 其中方法的參數為KeyEvent。 取得鍵盤鍵入的值的方法是繼承KeyEvent的物件方法。 Int getKeyCode() 取得鍵值。 KeyEvent類別定義按鍵的的常數,常用的方向鍵如下。 KeyEvent.VK_LEFT 方向鍵向左 KeyEvent.VK_REGHT 方向鍵向右 KeyEvent.VK_UP 方向鍵向上 KeyEvent.VK_DOWN 方向鍵向下 程式範例Ch16_6_3

Java Applet與事件處理 AWT的GUI元件產生的事件屬於【語意事件】,如List,Choice和Button元件所產生的事件。 Button,List,TextField,MenuItem(Class)->ActionEvent0>ActionListener->actionPerformed(Method)->Java Applet實作介面。 Choice,Checkbox,List,CheckMenuItem(class)->ItemEvent->ItemListener->itemStateChanged(Method)->Java Applet實作介面。 其中方法的參數分別為ActionEvent,ItemEvent。 因為actionPerformed方法可以同時處理【Botton】及【List】元件所產生的事件,所以需要getSource方法來取得【觸發事件】的【來源物件】 程式範例Ch16_6_4.java

Java Applet與事件處理 另外還有其他【語意事件】,TextField及TextArea。 TextField,TextArea(class)->TextEvent->TextListener->textValueChanged(Method)->Java Applet實作此介面。 其中方法的參視為TextEvent。 在處理字串變更時,可以使用getText方法取得使用者輸入的資料。 程式範例Ch16_6_5.java

Java Applet的音樂撥放 Java Applet不只可以顯示圖片,程式也可以撥放音樂。 目前支援的檔案格式有 au , aiff , wav , mid 及 rmf 。 在Applet類別中提供getAudioClip方法可以建立AudioClip物件來載入音樂檔案。 AudioClip audio = getAudioClip(detDocumentBase(),”abc.wav”) 在建立AudioClip物件,可以使用AudioClip介面的方法控制音樂的撥放。 void play() :撥放音樂 void loop() :重複撥放音樂 void stop():停止撥放音樂 程式範例Ch16_7.java

Finish !!! Thank you