Microsoft Word - 投影片ch18

Size: px
Start display at page:

Download "Microsoft Word - 投影片ch18"

Transcription

1 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十八章事件處理 本章學習目標認識 Java 的委派事件模式認識並學習使用各種事件處理類別學習各種物件的事件處理

2 事件處理 委派事件模式 Java 的事件處理是採取 委派事件模式 (delegation event model) 委派事件模式是指當事件發生時, 產生事件的物件會把此一 訊息 轉給 事件傾聽者 (event listener) 處理的方式

3 事件處理 18-3 下圖說明了 委派事件模式 的運作流程 : 2 按下按鈕,Java 會產生 1 一個 事件的物件 事件傾聽者 A 先向按鈕 btn 註冊 (register) 4 事件傾聽者 A 依據事件的物件的種類把工作指派給事件處理者 按鈕 btn (event source) 事件傾聽者 A (event listener) 事件處理者 A 3 按鈕 (event source) 會把此一 事件的物件 傳遞給事件傾聽者 A 事件傾聽者 B 事件處理者 B 事件傾聽者 C 事件處理者 C

4 事件處理 簡單的範例 下圖設計了一個視窗 frm, 內含一個按鈕 btn, 當此按鈕按下時, 視窗的顏色便會從原先的白色變成黃色 : 按鈕 btn 視窗 frm (1) 按下此按鈕 (2) 視窗由白色變成黃色

5 事件處理 18-5 下面的程式碼不考慮事件的處理 : 01 // app18_1, 簡單的事件處理範例 ( 未加入事件處理 ) 02 import java.awt.*; 03 public class app18_1 extends Frame // 設定 app18_1 類別繼承自 Frame 類 別 04 { 05 static app18_1 frm=new app18_1(); // 建立 app18_1 類別的物件 frm 06 static Button btn=new Button("Click Me"); public static void main(string args[]) 09 { 10 frm.setlayout(new FlowLayout()); 11 frm.settitle("action Event"); 12 frm.setsize(200,150); 13 frm.add(btn); 14 frm.setvisible(true); 15 } 16 }

6 事件處理 18-6 (1) 誰來當傾聽者? 通常偏好讓包含 事件來源者 的物件來擔任 app18_1 中, 按鈕觸發的事件是由 ActionListener 介面來傾聽, 因此要實作的介面是 ActionListener, 所以必須把第 3 行修改成 : public class app18_1 extends Frame implements ActionListener 類別 app18_1 實作 ActionListener 介面 (2) 怎麼註冊? 可用 addactionlistener() method 來達成 : btn.addactionlistener( frm ); 事件來源者 傾聽者

7 事件處理 18-7 (3) 如何撰寫事件處理的程式碼? 把事件處理程序撰寫在 actionperformed() method 裡 本例的事件處理只是把視窗的底色改成黃色 : public void actionperformed(actionevent e) { frm.setbackground(color.yellow); } // 事件發生的處理動作 // 把視窗的底色改成黃色

8 事件處理 18-8 (4) 最後的完成工作 重新整理, 可得到下面的程式碼 : 01 // app18_2, 簡單的事件處理範例 ( 已加入事件處理 ) 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_2 extends Frame implements ActionListener 05 { 06 static app18_2 frm=new app18_2(); 07 static Button btn=new Button("Click Me"); public static void main(string args[]) 10 { 11 btn.addactionlistener(frm); // 把 frm 向 btn 註冊 12 frm.setlayout(new FlowLayout()); 13 frm.settitle("action Event"); 14 frm.setsize(200,150); 15 frm.add(btn); 16 frm.setvisible(true); 17 } public void actionperformed(actionevent e)// 事件發生的處理動作 20 { 21 frm.setbackground(color.yellow); 22 } 23 }

9 事件處理 18-9 下圖為 app18_2 的執行流程 : 2 按下按鈕,btn 會產生一個 1 ActionEvent 類別的物件 obj frm 先向按鈕 btn 註冊 btn.addactionlistener(frm); 按鈕 btn (event source) 事件傾聽者 frm (event listener) 4 frm 依據 obj 把工作指派給 actionperformed() method 3 按鈕會把 obj 傳遞給 frm 事件處理者 public void actionperformed(actionevent e) e) {{ frm.setbackground(color.yellow); }}

10 事件處理 定義內部類別當成傾聽者 下面的範例是自訂一個類別來實作 ActionListener 介面, 再把此類別產生的物件當成傾聽者 : 01 // app18_3, 定義內部類別當成傾聽者 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_3 // 主類別, 注意此類別不用繼承 Frame 類別 05 { 06 static Frame frm=new Frame("Action Event"); 07 static Button btn=new Button("Click Me"); public static void main(string args[]) 10 { 11 btn.addactionlistener(new ActLis()); 12 frm.setlayout(new FlowLayout()); 13 frm.setsize(200,150); 14 frm.add(btn); 15 frm.setvisible(true); 16 } 17 // 定義內部類別 ActLis, 並實作 ActionListener 介面 18 static class ActLis implements ActionListener

11 事件處理 { 20 public void actionperformed(actionevent e) // 事件發生的處理動作 21 { 22 frm.setbackground(color.yellow); 23 } 24 } 25 }

12 事件處理 認識事件處理類別 事件類別的繼承關係如下圖所示 : java.lang.object java.util.eventobject.eventobject java.awt.awtevent.awt.awtevent ActionEvent AdjustmentEvent ComponentEvent ContainerEvent FocusEvent ItemEvent TextEvent InputEvent PaintEvent WindowEvent KeyEvent MouseEvent

13 事件處理 事件類別分為兩種 : 1. 語意事件 (semantic events) 2. 低階事件 (low-level events) 語意事件直接繼承自 AWTEvent 類別 低階事件則是繼承自 ComponentEvent 類別

14 事件處理 下圖顯示了事件傾聽者之間的繼承關係 : ActionListener AdjustmentListener java.util java.util.eventlistener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener TextListener WindowListener

15 事件處理 下表為事件類別 事件傾聽者介面與傾聽者介面裡所提供的 method: 表 事件類別 事件傾聽者介面與傾聽者介面裡所提供的 method 事件類別傾聽者介面傾聽者介面所提供的事件處理者 ActionEvent ActionListener actionperformed(actionevent e) AdjustmentEvent AdjustmentListener adjustmentvaluechanged(adjustmentevent e) ItemEvent ItemListener itemstatechanged(itemevent e) KeyEvent KeyListener keytyped(keyevent e) keypressed(keyevent e) keyreleased(keyevent e) MouseEvent MouseListener MouseMotionListener mouseclicked(mouseevent e) mouseentered(mouseevent e) mouseexited(mouseevent e) mousepressed(mouseevent e) mousereleased(mouseevent e) mousedragged(mouseevent e) mousemoved(mouseevent e) TextEvent TextListener textvaluechanged(textevent e)

16 事件處理 事件類別傾聽者介面傾聽者介面所提供的事件處理者 WindowEvent WindowListener windowactivated(windowevent e) windowclosed(windowevent e) windowclosing(windowevent e) windowdeactivated(windowevent e) windowdeiconified(windowevent e) windowiconified(windowevent e) windowopened(windowevent e)

17 事件處理 下表為 AWT 所提供的物件中, 可能觸發事件類別的對應關係 : 表 AWT 的物件可能產生事件的對應關係表 事件來源者 Button CheckBox 產生事件的類別型態 ActionEvent ActionEvent ItemEvent Component ComponentEvent FocusEvent KeyEvent MouseEvent MenuItem Scrollbar TextArea TextField Window ActionEvent AdjustmentEvent ActionEvent ActionEvent WindowEvent

18 事件處理 使用 ActionEvent 類別 按下按鈕物件時, 便觸發了動作事件 (action event) getmodifiers() method 可取得事件發生時所按下的按鍵 按鍵被按下的常數都定義在 InputEvent 類別裡, 列表如下 : 表 java.awt.event.inputevent 的資料成員 資料成員 說明 static int ALT_DOWN_MASK 用來表示鍵盤上的 ALT 按鍵被按下, 其值為 512 static int CTRL_DOWN_MASK 用來表示鍵盤上的 CTRL 按鍵被按下, 其值為 128 static int SHIFT_DOWN_MASK 用來表示鍵盤上的 SHIFT 按鍵被按下, 其值為 64

19 事件處理 app18_4 是 ActionEvent 類別的使用範例 01 // app18_4, 加入可關閉視窗的按鈕 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_4 extends Frame implements ActionListener 05 { 06 static app18_4 frm=new app18_4(); 07 static Button btn1=new Button("Yellow"); 08 static Button btn2=new Button("Green"); 09 static Button btn3=new Button("Exit"); public static void main(string args[]) 12 { 13 btn1.addactionlistener(frm); // 把事件傾聽者 frm 向 btn1 註冊 14 btn2.addactionlistener(frm); // 把事件傾聽者 frm 向 btn2 註冊 15 btn3.addactionlistener(frm); // 把事件傾聽者 frm 向 btn3 註冊 frm.settitle("action Event"); 18 frm.setlayout(new FlowLayout(FlowLayout.CENTER)); 19 frm.setsize(200,150); 20 frm.add(btn1); 21 frm.add(btn2); 22 frm.add(btn3);

20 事件處理 frm.setvisible(true); 24 } public void actionperformed(actionevent e) 27 { 28 Button btn=(button) e.getsource(); // 取得事件來源物件 29 if(btn==btn1) // 如果是按下 btn1 按鈕 30 frm.setbackground(color.yellow); 31 else if(btn==btn2) // 如果是按下 btn2 按鈕 32 frm.setbackground(color.green); 33 else // 如果是按下 btn3 按鈕 34 System.exit(0); 35 } 36 }

21 事件處理 使用 ItemEvent 類別 ItemEvent 類別可以處理選項物件被選取時, 所觸發的選項事件 ItemListener 介面宣告了 itemstatechanged() method: public void itemstatechanged(itemevent e) 當選項物件被選取時, 這個 method 便會被執行

22 事件處理 下表為 ItemEvent 類別提供的成員 : 表 ItemEvent 的資料成員與 method 資料成員 static int DESELECTED static int SELECTED 主要功能 代表 Item 物件的狀態沒有被選取 代表 Item 物件的狀態被選取 method Object getitem() int getstatechange() 主要功能 取得觸發事件的 Item 物件 傳回 Item 物件改變的狀態 (DESELECTED 或 SELECTED)

23 事件處理 app18_5 是 ItemEvent 使用的範例 : 01 // app18_5, ItemEvent 類別的使用範例 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_5 extends Frame implements ItemListener 05 { 06 static app18_5 frm=new app18_5(); 07 static Checkbox ckb1=new Checkbox("Epson 5900L"); 08 static Checkbox ckb2=new Checkbox("HP LaserJet 4p"); 09 static Label lab=new Label(" Select a printer "); public static void main(string args[]) 12 { 13 CheckboxGroup grp=new CheckboxGroup(); 14 frm.setsize(200,150); 15 frm.settitle("item Event"); 16 frm.setlayout(new FlowLayout(FlowLayout.LEFT)); 17 ckb1.setcheckboxgroup(grp); // 將 ckb1 設為單選 18 ckb2.setcheckboxgroup(grp); // 將 ckb2 設為單選 19 lab.setbackground(color.orange); 20 ckb1.additemlistener(frm); // 讓 frm 當成 ckb1 的傾聽者 21 ckb2.additemlistener(frm); // 讓 frm 當成 ckb2 的傾聽者

24 事件處理 frm.add(lab); 23 frm.add(ckb1); 24 frm.add(ckb2); 25 frm.setvisible(true); 26 } 27 // ItemEvent 事件發生時的處理動作 28 public void itemstatechanged(itemevent e) 29 { 30 if(ckb1.getstate()==true) // 如果是 ckb1 被選擇 31 lab.settext(" Epson 5900L"); 32 else if(ckb2.getstate()==true) // 如果是 ckb2 被選擇 33 lab.settext(" HP LaserJet 4p"); 34 } 35 }

25 事件處理 文字事件的處理 --TextEvent 類別 當視窗中的 TextField 或 TextArea 物件裡的文字改變時, 會觸發 文字事件 (text event) app18_6 是 TextEvent 使用的範例 : 01 // app18_6, TextEvent 類別的使用範例 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_6 extends Frame implements TextListener 05 { 06 static app18_6 frm=new app18_6(); 07 static TextArea txa1; 08 static TextArea txa2; public static void main(string args[]) 11 { 12 txa1=new TextArea("",6,10,TextArea.SCROLLBARS_NONE); 13 txa2=new TextArea("",6,10,TextArea.SCROLLBARS_NONE); 14 frm.setsize(200,150); 15 frm.settitle("text Event"); 16 frm.setlayout(new FlowLayout(FlowLayout.CENTER));

26 事件處理 txa1.addtextlistener(frm); // 將 frm 設為 txa1 的傾聽者 18 txa2.seteditable(false); // 將 txa2 設定為不可編輯 19 frm.add(txa1); 20 frm.add(txa2); 21 frm.setvisible(true); 22 } 23 // 當 txa1 物件裡的文字改變時, 執行下列的程式碼 24 public void textvaluechanged(textevent e) 25 { 26 txa2.settext(txa1.gettext()); 27 } 28 } app18_6 的執行結果如下所示

27 事件處理 按鍵事件的處理 --KeyEvent 類別 只要在鍵盤上按下任何鍵, 皆會觸發按鍵事件 下表列出 KeyEvent 類別常用的 method: 表 KeyEvent 的 method method char getkeychar() char getkeycode() public boolean isactionkey() 主要功能 傳回按下的字元 傳回字元碼 判別所按下的按鍵是否為 Action Key, 所謂的 Action Key 是指方向鍵 PgDn 與 PgUp 與 F1~F12 等按鍵

28 事件處理 以 KeyListener 介面處理 KeyEvent 事件 KeyListener 介面裡宣告了三個 method, 列表如下 : 表 KeyListener 介面裡宣告的 method KeyListener 介面的 method keypressed(keyevent e) keyreleased(keyevent e) keytyped(keyevent e) 功能說明 按下按鍵事件 放開按鍵事件字元輸入事件, 即按下按鍵與放開按鍵這一整個事件, 但不包括鍵入 Action Key

29 事件處理 app18_7 是 KeyEvent 使用的範例 : 01 // app18_7, 以 KeyListener 介面處理 KeyEvent 事件 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_7 extends Frame implements KeyListener 05 { 06 static app18_7 frm=new app18_7(); 07 static TextField txf=new TextField(18); 08 static TextArea txa=new TextArea("",4,19,TextArea.SCROLLBARS_NONE); public static void main(string args[]) 11 { 12 frm.setsize(200,150); 13 frm.settitle("key Event"); 14 frm.setlayout(new FlowLayout(FlowLayout.CENTER)); 15 txf.addkeylistener(frm); // 將 frm 設為 txf 的傾聽者 16 txa.seteditable(false); // 將 txa 設為不可編輯 17 frm.add(txf); 18 frm.add(txa); 19 frm.setvisible(true); 20 } 21 // 當 txf 物件觸發 KeyEvent 事件時, 依事件種類執行下列的程式碼

30 事件處理 public void keypressed(keyevent e) // 當按鍵按下時 23 { 24 txa.settext(""); // 清空 txa 裡的文字 25 txa.append("keypressed() called\n"); 26 } 27 public void keyreleased(keyevent e) // 當按鍵放開時 28 { 29 txa.append("keyreleased() called\n"); 30 } 31 public void keytyped(keyevent e) // 鍵入文字時 32 { 33 txa.append("keytyped() called\n"); 34 } 35 } 執行結果如右圖所示 :

31 事件處理 以 KeyAdapter 類別事件處理 KeyEvent 事件 app18_8 是以 KeyAdapter 類別事件處理 KeyEvent 事件的範例 01 // app18_8, 以 KeyAdapter 類別事件處理 KeyEvent 事件 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_8 extends Frame // 不需實作 KeyListener 介面 05 { 06 static app18_8 frm=new app18_8(); 07 static TextField txf=new TextField(18); 08 static TextArea txa=new TextArea("",4,19,TextArea.SCROLLBARS_NONE); 09 public static void main(string args[]) 10 { 11 frm.setsize(200,150); 12 frm.settitle("key Event"); 13 frm.setlayout(new FlowLayout(FlowLayout.CENTER)); 14 txf.addkeylistener(new KeyLis()); 15 txa.seteditable(false); 16 frm.add(txf); 17 frm.add(txa); 18 frm.setvisible(true); 19 } 先產生 KeyLis 類別的物件, 再把它當成是 txf 的事件傾聽者

32 事件處理 // 定義 KeyLis 為 static 類別, 並繼承自 KeyAdapter 類別 21 static class KeyLis extends KeyAdapter 22 { 23 public void keypressed(keyevent e) 24 { 25 txa.settext(""); // 清空 txa 裡的文字 26 if(e.isactionkey()) // 如果是 Action key 27 txa.append("action key is pressed\n"); 28 else // 如果不是 Action key, 則印出字元 29 txa.append(e.getkeychar()+" is pressed\n"); 30 } 31 } 32 } app18_8 的執行結果如下圖所示 :

33 事件處理 滑鼠事件的處理 --MouseEvent 類別 當滑鼠的按鈕按下 滑鼠指標進入或移出事件來源物件, 或者是移動 拖曳滑鼠等, 皆會觸發滑鼠事件 下表 MouseEvent 類別裡常用的 method: 表 method MouseEvent 的 method 主要功能 Point getpoint() int getx() int gety() 取得滑鼠按鍵按下之點的坐標, 並以 Point 類別型態的物件傳回 取得滑鼠按鍵按下之點的 x 坐標 取得滑鼠按鍵按下之點的 y 坐標

34 事件處理 Java 以 MouseListener 和 MouseMotionListener 介面當成滑鼠事件的傾聽者 MouseListener 介面主要是用來傾聽下列 5 項事件的發生 : (1) 接下滑鼠按鈕 ( 包括滑鼠左鍵或右鍵 ) (2) 滑鼠的指標移到事件的來源物件 ( 如按鈕 ) 的上方 (3) 滑鼠的指標從事件的來源物件 ( 如按鈕 ) 的上方移出 (4) 按下滑鼠的任一個按鍵 (5) 放開滑鼠被按下的按鍵

35 事件處理 下表為 MouseListener 介面裡宣告的 method: 表 MouseListener 介面的 method mouseclicked(mouseevent e) MouseListener 介面裡宣告的 method mouseentered(mouseevent e) mouseexited(mouseevent e) mousepressed(mouseevent e) mousereleased(mouseevent e) 功能說明 在事件來源物件的上方按一下滑鼠按鍵 ( 此動作包括按下與放開兩個程序 ) 滑鼠的指標進入事件的來源物件 滑鼠的指標移出事件的來源物件 按下滑鼠的任一個按鍵 放開滑鼠被按下的按鍵

36 事件處理 MouseMotionListener 介面則是用來傾聽下列 2 個事件的發生 : (1) 當滑鼠在事件的來源物件上方移動 (move) (2) 當滑鼠在事件的來源物件上方拖曳 (drag) MouseMotionListener 介面裡也宣告了兩個 method, 列表如下 : 表 MouseMotionListener 介面裡宣告的 method MouseMotionListener 介面的 method 功能說明 mousedragged(mouseevent e) 當滑鼠在事件的來源物件上方拖曳 mousemoved(mouseevent e) 當滑鼠在事件的來源物件上方移動

37 事件處理 以 MouseListener 介面處理 MouseEvent 事件 app18_9 是以 MouseListener 介面處理 MouseEvent 事件的範例 : 01 // app18_9, 以 MouseListener 介面處理 MouseEvent 事件 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_9 extends Frame implements MouseListener 05 { 06 static app18_9 frm=new app18_9(); 07 static Button btn=new Button(" Click Me!! "); 08 static TextArea txa=new TextArea("",2,5,TextArea.SCROLLBARS_NONE); public static void main(string args[]) 11 { 12 BorderLayout br=new BorderLayout(2,5); 13 frm.setsize(200,150); 14 frm.settitle("mouse Event"); 15 frm.setlayout(br); 16 btn.addmouselistener(frm); // 設定 frm 為 btn 的傾聽者 17 txa.seteditable(false); 18 frm.add(btn,br.west); 19 frm.add(txa,br.center);

38 事件處理 frm.setvisible(true); 21 } public void mouseentered(mouseevent e)// 滑鼠的指標進入 btn 上方 24 { 25 txa.settext("mouse entered\n"); 26 } 27 public void mouseclicked(mouseevent e) // 按下並放開滑鼠按鈕 28 { 29 txa.append("mouse clicked\n"); 30 } 31 public void mouseexited(mouseevent e) // 滑鼠的指標移開 btn 上方 32 { 33 txa.append("mouse exited\n"); 34 } 35 public void mousepressed(mouseevent e) // 按下滑鼠按鈕 36 { 37 txa.append("mouse pressed\n"); 38 } 39 public void mousereleased(mouseevent e) // 放開滑鼠按鈕 40 { 41 txa.append("mouse released\n"); 42 } 43 }

39 app18_9 的執行結果如下所示 : 事件處理 18-39

40 事件處理 以 MouseMotionListener 介面處理 MouseEvent 事件 app18_10 是 MouseMotionListener 介面使用的範例 01 // app18_10, 以 MouseMotionListener 介面處理 MouseEvent 事件 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_10 extends Frame implements MouseMotionListener 05 { 06 static app18_10 frm=new app18_10(); 07 static Label labx=new Label(); 08 static Label laby=new Label(); 09 static Label lab=new Label(); 10 public static void main(string agrs[]) 11 { 12 frm.setlayout(null); 13 frm.addmousemotionlistener(frm); // 設定 frm 為事件的傾聽者 14 labx.setbounds(40,40,40,20); 15 laby.setbounds(100,40,40,20); 16 lab.setbounds(40,80,100,40); 17 frm.setsize(200,150); 18 frm.settitle("mouse Event"); 19 frm.add(labx); 20 frm.add(laby); 21 frm.add(lab);

41 事件處理 frm.setvisible(true); 23 } 24 public void mousemoved(mouseevent e) // 當滑鼠移動時 25 { 26 labx.settext("x="+e.getx()); // 顯示 x 座標 27 laby.settext("y="+e.gety()); // 顯示 y 座標 28 lab.settext("mouse Moved!!"); // 顯示 "Mouse Moved!!" 字串 29 } 30 public void mousedragged(mouseevent e) // 當滑鼠拖曳時 31 { 32 labx.settext("x="+e.getx()); // 顯示 x 座標 33 laby.settext("y="+e.gety()); // 顯示 y 座標 34 lab.settext("mouse Dragged!!"); // 顯示 "Mouse Dragged!!" 字串 35 } 36 } 當滑鼠拖曳或移動時, 此處便會顯示出滑鼠指標的座標

42 事件處理 以 MouseAdapter 類別處理 MouseEvent 事件 app18_11 是以 MouseAdapter 類別事件處理 MouseEvent 事件的範例 01 // app18_11, 以 MouseAdapter 類別事件處理 MouseEvent 事件 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_11 extends Frame 05 { 06 static app18_11 frm=new app18_11(); 07 static Button btn=new Button(" Click Me!! "); 08 static TextArea txa=new TextArea("",2,5,TextArea.SCROLLBARS_NONE); 09 static MouseLis mlis=new MouseLis(); // 建立 MouseLis 類別的物件 10 public static void main(string args[]) 11 { 12 BorderLayout br=new BorderLayout(2,5); 13 frm.setsize(200,150); 14 frm.settitle("mouse Event"); 15 frm.setlayout(br); 16 btn.addmouselistener(mlis); // 以 mlis 物件做為 btn 的傾聽者 17 txa.seteditable(false); 18 frm.add(btn,br.west); 19 frm.add(txa,br.center); 20 frm.setvisible(true);

43 21 } 22 // 定義 MouseLis 為 static 類別, 並繼承自 MouseAdapter 類別 23 static class MouseLis extends MouseAdapter 24 { 25 public void mouseclicked(mouseevent e) 26 { 27 int x=e.getx(); // 取得 x 座標 28 int y=e.gety(); // 取得 y 座標 29 txa.append("clicked at ("+x+","+y+")\n"); 30 } 31 } 32 } 事件處理 18-43

44 事件處理 視窗事件的處理 --WindowEvent 類別 視窗的建立 縮小至工具列, 或者是關閉等皆會觸發視窗事件 下表列出了 WindowEvent 類別的 method: 表 WindowEvent 的 method method Window getwindow() String paramstring() 主要功能 取得觸發事件的視窗 取得觸發事件之視窗的引數

45 事件處理 WindowEvent 事件的傾聽者是 WindowListener 介面, 下表為該介面裡宣告的 method: 表 WindowListener 介面裡宣告的 method WindowListener 介面的 method windowactivated(windowevent e) windowclosed(windowevent e) windowclosing(windowevent e) windowdeactivated(windowevent e) windowdeiconified(windowevent e) windowiconified(windowevent e) windowopened(windowevent e) 事件說明 視窗由 非作用中視窗 變成 作用中視窗 視窗已被關閉 使用者企圖關閉視窗時 此事件是發生在按下視窗關閉鈕時, 因此通常會利用這個時機讓使用者確定是否要關閉 視窗由 作用中視窗 變成 非作用中視窗 視窗由最小化狀態變成一般狀態 視窗由一般狀態變成最小化狀態 視窗開啟時

46 事件處理 app18_12 是以 WindowAdapter 類別來處理視窗事件的範例 01 // app18_12, WindowAdapter 類別來處理視窗事件 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app18_12 extends Frame 05 { 06 static app18_12 frm=new app18_12(); 07 static WinLis wlis=new WinLis(); // 產生 WinLis 類別的物件 wlis public static void main(string args[]) 10 { 11 frm.setsize(200,150); 12 frm.settitle("window Event"); 13 frm.addwindowlistener(wlis); // 設定 wlis 為 frm 的事件傾聽者 14 frm.setvisible(true); 15 } 16 // 定義 WinLis 為 static, 並繼承自 WindowAdapter 類別 17 static class WinLis extends WindowAdapter 18 { 19 public void windowclosing(windowevent e) // 按下視窗關閉鈕 20 { 21 System.out.println("windowClosing() called"); 22 System.out.println("Closing window..."); 23 frm.dispose(); // 關閉視窗並釋放資源 24 System.out.println("window closed...");

47 事件處理 } 26 public void windowclosed(windowevent e) // 關閉視窗 27 { 28 System.out.println("windowClosed() called"); 29 } 30 public void windowdeactivated(windowevent e) // 變成非作用中視窗 31 { 32 System.out.println("windowDeactivated() called"); 33 } 34 public void windowactivated(windowevent e) // 變成作用中視窗 35 { 36 System.out.println("windowActivated() called"); 37 } 38 public void windowdeiconified(windowevent e) // 視窗還原 39 { 40 System.out.println("windowDeiconified() called"); 41 } 42 public void windowiconified(windowevent e) // 視窗最小化 43 { 44 System.out.println("windowIconified() called"); 45 } 46 public void windowopened(windowevent e) // 開啟視窗 47 { 48 System.out.println("windowOpened() called"); 49 } 50 } 51 }

48 事件處理 執行結果會因觸發視窗事件的不同而定 : /* app18_12 OUTPUT windowactivated() called windowopened() called windowiconified() called windowdeactivated() called windowactivated() called windowdeiconified() called windowactivated() called windowclosing() called Closing window... window closed... windowclosed() called */

49 事件處理 18-49

Microsoft PowerPoint - 18_Event.pptx

Microsoft PowerPoint - 18_Event.pptx 第十八章事件處理 認識 Java 的委派事件模式認識並學習使用各種事件處理學習各種物件的事件處理 1 18.1 委派事件模式 委派事件 指當事件發生時, 產生事件的物件會把 訊息 轉給 事件傾聽者 (event listener) 處理 下圖說明 委派事件模式 的運作流程 : 2 簡單的範例 18.1 委派事件模式 視窗內加入按鈕, 尚未加入事件的處理之程式 : 視窗內有一按鈕, 當此按鈕按下時,

More information

第1章

第1章 第 17 章 有來有往 互動式視窗程式 1 本章提要 17.1 前言 17.2 元件 Event 觸發 17.3 Event 監聽者 Listener 17.4 Event 接收者 Adapter 17.5 Event 類別及提供的函式 17.5.1 MouseEvent 17.5.2 KeyEvent 17.5.3 TextEvent 17.5.4 WindowEvent 17.5.5 其他 Event

More information

Microsoft Word - 投影片ch20

Microsoft Word - 投影片ch20 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第二十章 AWT 的繪圖 本章學習目標認識 Java 繪圖的基本概念學習設定圖形的顏色與文字的字型學習用滑鼠繪圖的基本程式設計 AWT 的繪圖 20-2 20.1 繪圖概述 20.1.1 座標系統 Java 的座標系統, 原點在視窗的左上角, 向右為 x 軸方向, 向下為 y 軸方向, 如下圖所示 : 原點 x (x,y)

More information

untitled

untitled OGRE http://antsam.blogone.net AntsamCGD@hotmail.com OGRE OGRE listener listener target listener target Dispatcher Processor Input Reader Event class view Event Class view Input Event ctrlaltshift ascoll

More information

PowerPoint 簡報

PowerPoint 簡報 Paint 繪圖板 JAVA 程式設計 指導老師 : 鄞宗賢 組員 : 4A3G0901 劉彥佐 4A3G0907 韓偉志 畫面預覽 匯入參數 package paint; import java.awt.*; import java.awt.event.*; import javax.swing.*; 主程式 public class paint{ public static void main(string[]

More information

<4D F736F F F696E74202D C DB5DA3136D5C25FCAC2BCFEC7FDB6AFB3CCD0F2C9E8BCC62E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D C DB5DA3136D5C25FCAC2BCFEC7FDB6AFB3CCD0F2C9E8BCC62E BBCE6C8DDC4A3CABD5D> 第 16 章事件驱动程序设计 1 动因 假如希望编写一个 GUI 程序, 提示用户输入贷款总额 年利率和年数, 然后点击 Compute Loan 按钮获取月偿还 额和总偿还额 如何完成这个任务呢? 必须使用事件驱 动程序设计来编写代码以响应点击按钮事件 LoanCalculator Run 2 动因 假设希望编写程序用动画实现一面旗上升, 如图 16.1(b-d) 所示 如何完成这个任务呢? 解决这个问题的方式有好几

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes (Swing) AWTEvent Font LayoutManager 1 Classes in the javax.swing package Heavyweight FontMetrics Object Color Panel Applet JApplet Graphics Component Container Window Frame JFrame * Dialog JDialog JComponent

More information

chp8.ppt

chp8.ppt Java 软件设计基础 图形用户界面程序设计入门 1. 组件概述 GUI: Graphics User Interface 设计和实现 GUI 的主要难点 创建组成界面的各成分和元素, 指定它们的属性和位置关系, 根据具体需要布局排列, 从而构成完整的 GUI 的外观表象 ; 在 GUI 程序中, 代码所执行的路线及顺序都是很不确定的 在 GUI 程序中, 用户可以点击任意按键并和屏幕上的其他任何部分进行交互及信息传递

More information

Swing-02.pdf

Swing-02.pdf 2 J B u t t o n J T e x t F i e l d J L i s t B u t t o n T e x t F i e l d L i s t J F r a m e 21 2 2 Swing C a n v a s C o m p o n e n t J B u t t o n AWT // ToolbarFrame1.java // java.awt.button //

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

图形用户界面 (GUI) 设计

图形用户界面 (GUI) 设计 2013-2014 学年度第二学期课程 C 语言程序设计 Java 语言程序设计面向过程编程方法 编程方法学 新疆农业大学计算机与信息工程学院 陈燕红 :cyh@xjau.edu.cn 图形用户界面 (GUI) 设计 参考 C:\Program Files\Java\jdk1.6.0_10\demo 教学内容 1 Java 图形用户界面设计概述 2 3 4 AWT 组件集 事件处理 Swing

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 单元七 Java GUI 应用程序开发 1.AWT 及其图形界面组件 2.AWT 布局管理器 3.AWT 事件处理机制 案例 7-1 登录窗口 登录窗口是很多应用系统中不可缺少的组成部分 通过验证用户输入的用户名和密码, 决定是否允许用户进入系统, 在一定程度上保证系统的安全 本案例设计一个登录窗口, 运行 界面如图 7-1 所示 图 7-1 案例 7-1 登录窗口 众所周知, 拥有图形用户界面的计算机应用程序生动

More information

Microsoft Word - 投影片ch17

Microsoft Word - 投影片ch17 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十七章 AWT 視窗物件 本章學習目標認識 AWT 類別認識並學習如何建立視窗物件學習如何管理與配置版面學習 Panel 類別的使用 AWT 視窗物件 17-2 17.1 認識 AWT 類別 AWT(Abstract Windowing Toolkit) 是用來處理視窗最基本的方式 17.1.1 簡單的範例 下面是一個簡單的視窗程式設計的範例

More information

Java事件处理模型

Java事件处理模型 Java 事件处理模型 北京理工大学计算机学院 金旭亮 事件驱动 的软件系统 面向对象的软件系统许多是 事件驱动 的, 通常定义了一系列的事件, 并且事先规定好这些事件发生时应该如何响应 由于事件的发生通常是离散的, 所以 事件驱动 的软件系统并没有一个固定的执行流程 Java 的 GUI 应用程序也是 事件驱动 的 2014/11/17 金旭亮 Java 编程系列 (2014 版 ) 2 Java

More information

Microsoft Word - 投影片ch23

Microsoft Word - 投影片ch23 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第二十三章認識 Swing 本章學習目標 Swing 概述認識 JFrame 類別學習 Swing 的基本物件學習 Swing 物件之間的互動 認識 Swing 23-2 23.1 Swing 概述 Swing 提供了豐富的物件 更美觀的圖形介面, 以及更高的執行效率 幾乎每一個 AWT 物件都有一個相對應的 Swing

More information

Microsoft Word - 投影片ch11

Microsoft Word - 投影片ch11 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十一章抽象類別與介面 本章學習目標認識抽象類別學習介面的使用認識多重繼承與介面的延伸 抽象類別與介面 11-2 11.1 抽象類別 抽象類別的目的是要依據它的格式來修改並建立新的類別 11.1.1 定義抽象類別 定義抽象類別的語法如下 : abstract class 類別名稱 { 宣告資料成員 ; // 定義抽象類別

More information

chp11.ppt

chp11.ppt Java 软 件 设 计 基 础 Applet 程 序 1.Applet 概 念 Applet 与 Application Application 是 能 独 立 运 行 的 程 序 单 位 ; Applet 程 序 不 能 独 立 运 行, 必 须 依 附 在 网 页 上, 借 助 于 浏 览 器 才 能 运 行 通 常 置 于 服 务 器 端, 当 用 户 连 接 到 该 网 页,Applet

More information

Microsoft Word - 投影片ch21

Microsoft Word - 投影片ch21 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第二十一章網頁的精靈 -Applet 本章學習目標 applet 概述認識 applet 的執行程序學習載入影像與簡單的動畫製作學習在 applet 裡播放音樂檔 網頁的精靈 -Applet 21-2 21.1 applet 概述 applet 經編譯後, 會產生.class 的檔案, 其過程如下 : web 伺服器

More information

Microsoft Word - 投影片ch19

Microsoft Word - 投影片ch19 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十九章 AWT 的其它物件 本章學習目標學習選擇表單與下拉選單學習功能表的製作學習捲軸的製作學習各種對話方塊與其相關應用 AWT 的其它物件 19-2 19.1 選擇表單 選擇表單 (list) 可用來一次顯示多個選項 19.1.1 用 List 類別建立選擇表單 下表列出了 List 類別的建構元與常用的 method:

More information

Microsoft Word - Java全文.doc

Microsoft Word - Java全文.doc 第 4 章事件模型与事件处理 本章导读 本章首先介绍事件处理的由来, 并描述基于窗口的事件驱动程序的流程, 接着详细阐述 AWT 事件处理模型, 主要涉及三类对象 : 事件源 监听器和事件处理方法, 并说明事件处理机制, 具体介绍事件类 事件监听器 AWT 事件及其相应的监听器接口 事件适配器和常用的四种对事件的响应, 最后介绍开发一个基于 Java 平台事件驱动模型的记事本的案例 本章要点 事件处理的流程和机制

More information

Microsoft Word - 投影片ch15

Microsoft Word - 投影片ch15 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十五章多執行緒 本章學習目標認識執行緒學習如何建立執行緒學習如何管理執行緒認識執行緒的同步處理 多執行緒 15-2 15.1 認識執行緒 多執行緒 的機制可以同時執行多個程式區塊 app15_1 是單一執行緒的範例 : 01 // app15_1, 單一執行緒的範例 02 class CTest 03 { 04 private

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class 踩地雷遊戲 高慧君南港高中 開啟專案 MineSweep 任務一 : 產生 30X20 個磚塊編輯 Table 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.util.arraylist; Write a description of class MyWorld

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc) 作者 Amber 版本 1.0.0 日期 2012/04/25 頁數 1/7 如何使用 LED 燈顯示狀態? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 N/A N/A XP-8000-Atom 系列 WES2009 所有版本 N/A: Not applicable to this platform and OS. 注意! 欲變更系統的任何設定之前, 請先關閉

More information

Microsoft PowerPoint - C_Structure.ppt

Microsoft PowerPoint - C_Structure.ppt 結構與其他資料型態 Janet Huang 5-1 結構的宣告 struct 結構名稱 struct 結構名稱變數 1, 變數 2,, 變數 m; struct 結構名稱 變數 1, 變數 2,, 變數 m; student; student; 5-2 1 結構變數初值的設定 struct 結構名稱 struct 結構名稱變數 = 初值 1, 初值 2,, 初值 n student="janet","1350901",100,95

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

java2d-4.PDF

java2d-4.PDF 75 7 6 G r a d i e n t P a i n t B a s i c S t r o k e s e t P a i n t ( ) s e t S t o r k e ( ) import java.awt.*; import java.awt.geom.*; public class PaintingAndStroking extends ApplicationFrame { public

More information

18_GUI

18_GUI 圖形使用者介面 什麼是圖形使用者介面? 圖形使用者介面 (Graphics User Interface, GUI) 以圖像方式與使用者互動 : 程式顯示訊息 程式顯示資訊 操介界面 例子 : 電視遊樂器 電腦遊戲 Yung-Chen Chou 1 圖形使用者介面 要讓 Java 在 MS Windows 作業系統下或 Linux/Unix 下的 X windows 環境下以圖形方式呈現必須靠 Java

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt Java 程式設計基礎班 (8) 莊坤達台大電信所網路資料庫研究室 Email: doug@arbor.ee.ntu.edu.tw Class 8 1 回顧 Java Data Structure Class 8 2 Java AWT package Component: 一些 GUI 元件, 如 : Button Label 等 Container: 用來放置 GUI 元件的地方 Container

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

CHAPTER VC#

CHAPTER VC# 1. 2. 3. 4. CHAPTER 2-1 2-2 2-3 2-4 VC# 2-5 2-6 2-7 2-8 Visual C# 2008 2-1 Visual C# 0~100 (-32768~+32767) 2 4 VC# (Overflow) 2-1 2-2 2-1 2-1.1 2-1 1 10 10!(1 10) 2-3 Visual C# 2008 10! 32767 short( )

More information

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

Microsoft Word - 投影片ch13

Microsoft Word - 投影片ch13 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十三章例外處理 本章學習目標了解什麼是例外處理認識例外類別的繼承架構認識例外處理的機制學習如何撰寫例外類別 例外處理 13-2 13.1 例外的基本觀念 在執行程式時, 經常發生一些不尋常的狀況 例如 : (1) 要開啟的檔案不存在 (2) 陣列的索引值超過了陣列容許的範圍 (3) 使用者輸入錯誤 Java 把這類不尋常的狀況稱為

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 7 章 Java 中的 GUI 编程 图形用户界面 (Graphical User Interface,GUI) 使用图形的方式, 借助菜单 按钮等标准界面元素和鼠标操作, 帮助用户方便地向计算机系统发送指令, 启动操作, 并将系统运行的结果同样以图形方式显示给用户 图形用户界面操作简单, 省去了字符界面用户必须记忆各种命令的麻烦, 深受广大用户的喜爱和欢迎 所以学习设计和开发图形用户界面, 是应用软件开发人员的必修课

More information

图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充

图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充 图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充 例 2 单击 CLEAR, 重新回到初始状态, 下面让我们看一下自交多边形的情况 当单击数次后, 出现左图的情况, 之后我们单击

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

ZW1.PDF

ZW1.PDF C. A. R. Hoare, The Emperor s Old Clothes Java C++ Objective C Eiffel Smalltalk Mesa Lisp Java Java Java C++ Java 10 Item 1 Item 2 String.equals() == 1 1 Item 3 Java C++ Java Item 4 Java Item 5 Java Item

More information

The Embedded computing platform

The Embedded computing platform 嵌入式系統及實驗 Embedded System and Experiment 詹曉龍 長庚大學電機系 Java 的類別與物件 : 宣告類別 建構子 public class Customer { private String name; private String address; // Customer 類別宣告 // 成員資料 public int age; // 建構子 : 使用參數設定成員資料初始值

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

Microsoft PowerPoint - 11_EventHandle.pptx

Microsoft PowerPoint - 11_EventHandle.pptx 第十一章 視窗事件處理技巧 11.1 事件介紹 11.3 滑鼠事件 11.2 鍵盤事件 11.4 共享事件 備註 : 可依進度點選小節 11.1 事件介紹 事件 (Event) 是物件受到外力因素的影響, 而發生某種動作 將觸發事件的物件稱為 事件傳送者事件傳送者 將捕捉事件並且回應它的物件稱為 事件接收者事件接收者 當事件發生時, 這物件的事件處理函式會被啟動 事件處理函式內的程式碼是依程式的需求而撰寫的,

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

Photoshop CS3 影像創造力 基礎講堂 8 學習流程 學習重要性 學習難度 必學指令工具 實作應用範例 創造舞台燈光的漸層繪圖 延伸學習 雜訊與半透明漸層 8-1 Photoshop Photoshop 8 136

Photoshop CS3 影像創造力 基礎講堂 8 學習流程 學習重要性 學習難度 必學指令工具 實作應用範例 創造舞台燈光的漸層繪圖 延伸學習 雜訊與半透明漸層 8-1 Photoshop Photoshop 8 136 漸層填色與圖樣填色 08 8-1 漸層填色 8-2 漸層填色編輯 8-3 油漆桶填色 8-4 編輯圖樣 Photoshop CS3 影像創造力 基礎講堂 8 學習流程 學習重要性 學習難度 必學指令工具 8-1 8-2 8-3 8-4 實作應用範例 創造舞台燈光的漸層繪圖 延伸學習 雜訊與半透明漸層 8-1 Photoshop 8-1-1 Photoshop 8 136 漸層填色與圖樣填色 漸層填色

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

Microsoft PowerPoint - ch02

Microsoft PowerPoint - ch02 第 一 篇 基 礎 圖 文 動 畫 (Basic Graphics / Animation) 2 1 簡 介 2 2 Frame Class 2 3 執 行 緒 繪 圖 流 程 2 4 Font Class 2 5 Color Class 2 6 中 文 處 理 2 7 習 題 (Exercises) 第 二 章 文 字 繪 製 (Words) 2 1 簡 介 本 書 探 討 的 是 動 畫 遊 戲,

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc) 作者 Amber 版本 1.0.0 日期 2012/04/24 頁數 1/9 如何使用 watchdog 防止程式當機? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 WES2009 所有版本 XP-8000-Atom 系列 WES2009 所有版本 注意! 欲變更系統的任何設定之前, 請先關閉 EWF 的保護, 方能使變更值生效 ; 設定完成之後, 請再開啟

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第一部分基本实验 31 contentpane.add(p); setjmenubar(mb); // 将菜单项注册给事件监听者 File_Open.addActionListener(this); File_Close.addActionListener(this); File_Exit.addActionListener(this); Edit_Copy.addActionListener(this);

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 多型 Polymorphism 講師 : 洪安 1 多型 編譯時期多型 ( 靜態多型 ) function overloading 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 其實同 function overloading 執行時期多型 ( 或動態多型 ) 如何正確呼叫不同物件的相同名稱的成員函數 利用繼承與多型 2 子類別與父類別物件間的指定 (assignment)

More information

基于JAVA的连连看游戏设计

基于JAVA的连连看游戏设计 基 于 JAVA 的 连 连 看 游 戏 设 计 摘 要 :1978 年 第 一 款 PC 游 戏 冒 险 岛 在 美 国 问 世 至 今, 随 着 硬 件 和 软 件 水 平 的 不 断 进 步, 出 现 许 许 多 多 的 游 戏, 其 中 连 连 看 就 非 常 经 典 连 连 看 -- 在 一 个 画 好 的 格 局 内, 排 列 着 一 些 不 同 的 图 片, 选 中 两 张 一 样 的

More information

ContextMenu

ContextMenu 作者 : 林致宇 日期 :2012/1/20 問題 : 如何建立 ContextMenu? 解答 : 什麼是 ContextMenu 呢? 下面兩張圖是 ContextMenu 的範例, 紅色框線中的選單即所謂的 ContextMenu, 可以視為 選單列表, 例如在左圖的 ContextMenu 中有兩個選項 : Action 1 與 Action 2, 按下 Action 1 可執行某些動作,

More information

Topic

Topic 二 级 JAVA 上 机 试 题 汇 编 第 01 套 : 1. 基 本 操 作 (1 小 题, 计 30 分 ) 在 考 生 文 件 夹 中 存 有 文 件 名 为 Java_1.java 的 文 件, 该 程 序 是 不 完 整 的, 请 在 注 释 行 //**********Found********** 下 一 行 语 句 的 下 划 线 地 方 填 入 正 确 内 容, 然 后 删 除

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

Learning Java

Learning Java Java Introduction to Java Programming (Third Edition) Prentice-Hall,Inc. Y.Daniel Liang 2001 Java 2002.2 Java2 2001.10 Java2 Philip Heller & Simon Roberts 1999.4 Java2 2001.3 Java2 21 2002.4 Java UML 2002.10

More information

投影片 1

投影片 1 軟體說明書繁體中文 RGB A 目錄 - CONTENTS 01 09 15 17 22 軟體主介面 巨集設定說明 主介面概觀 個人設定檔 (Profiles) 一般模式 / 遊戲模式 按鍵功能分配 巨集管理器概觀 巨集管理器 巨集錄製設定 巨集錄製時間列表 插入指令 閃移系統 - I.S.S (Instant Shift System) 燈光設定更新韌體 閃移系統啟動鈕設定說明 燈光設定介面 介面區域一

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc Author WeiKai Version 1.0.0 Date 2013/4/14 Page 1/11 我如何在 XPAC 上建立一個 COM port 通訊程式 Applies to: Platform OS version XPAC utility version XPAC series All versions (WinCE6) All versions XPAC SDK 提供 XPAC 結合

More information

javaexample-02.pdf

javaexample-02.pdf n e w. s t a t i c s t a t i c 3 1 3 2 p u b l i c p r i v a t e p r o t e c t e d j a v a. l a n g. O b j e c t O b j e c t Rect R e c t x 1 y 1 x 2 y 2 R e c t t o S t r i n g ( ) j a v a. l a n g. O

More information

二 基 本 架 構 Server 21222 image portx 21223 data porty client Listen Server Listen Port Window Port 21222 maintain 21223 connect Maintain user s data Sen

二 基 本 架 構 Server 21222 image portx 21223 data porty client Listen Server Listen Port Window Port 21222 maintain 21223 connect Maintain user s data Sen Computer Network Laboratory Final Project Report 一 前 言 這 次 的 作 業 我 們 實 作 了 一 個 遠 端 的 即 時 系 統, 類 似 於 windows 的 遠 端 桌 面, 但 是 我 們 支 援 同 時 多 人 連 入 與 共 同 資 訊 的 保 護, 並 能 控 制 分 享 視 窗 的 大 小 滑 鼠 與 鍵 盤 的 操 控 與 一

More information

Microsoft Word - 投影片ch22

Microsoft Word - 投影片ch22 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第二十二章網路程式設計 本章學習目標認識網路學習如何取得文件的內容資訊學習如何建立 socket 連線學習如何建立 TCP 伺服程式與客戶程式 網路程式設計 22-2 22.1 網址與 InetAddress 類別的使用 IP 位址是以 4 個 8 bits 的數值, 以 10 進位來表示, 用來區分網路上的每一台電腦

More information

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级

More information

Microsoft PowerPoint - 14Threads.ppt

Microsoft PowerPoint - 14Threads.ppt Threads Outline Introduction to Threads How to create Thread extend Thread implement Runnable interface Synchronization What is thread? 定義 : 程式的執行軌跡 Single Thread Multi-Thread 依序執行 int x, y; int z; x =

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 70-536Chinese(C++) Title : TS:MS.NET Framework 2.0-Application Develop Foundation Version : DEMO 1 / 10 1. Exception A. Data B. Message C.

More information

Microsoft Word - Broker.doc

Microsoft Word - Broker.doc Broker 模式 采用 broker 模式对分布式计算进行简单模拟 系统在一个进程内模拟分布式环境, 因此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现 request 和 response 的转发 采用 broker 模式对分布式计算进行简单的模拟, 要求如下 : 设计四个 server, 一个 server 接收两个整数, 求和并返回结果, 一个 server 接收两个整数,

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 1Z0-854 Title : Java Standard Edition 5 Programmer Certified Professional Upgrade Exam Version : Demo 1 / 12 1.Given: 20. public class CreditCard

More information

利用Java技术编写桌面软件基础

利用Java技术编写桌面软件基础 利 用 Java 技 术 编 写 桌 面 软 件 基 础 在 学 习 Java 编 程 语 言 的 细 节 和 语 法 时, 我 们 会 碰 到 这 样 一 个 问 题 : 开 发 桌 面 应 用 软 件 需 要 使 用 哪 些 Java 技 术, 应 当 引 入 哪 些 package? 这 一 问 题 的 答 案 取 决 于 开 发 的 应 用 软 件 类 型 和 它 的 作 用 这 篇 文 章

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

More information

untitled

untitled How to using M-Power Report API M-Power Report API 力 了 M-Power Report -- Java (Library) M-Power Report API 行 Java M-Power Report M-Power Report API ( 30 ) PDF/HTML/CSV/XLS JPEG/PNG/SVG 料 料 OutputStream

More information

AutoCAD 用戶如何使用 ArchiCAD

AutoCAD 用戶如何使用 ArchiCAD AutoCAD 用戶如何使用 ArchiCAD AutoCAD用戶如何使用ArchiCAD ( 中文版 ) 由 Scott MacKenzie, Simon Gilbert, Geoffrey Moore Langdon, David Byrnes, Ralph Grabowski 編寫 龍庭資訊有限公司 1/73 - 2. 3. 4. -

More information

Microsoft PowerPoint - course8.ppt

Microsoft PowerPoint - course8.ppt 回顧 Java 程式設計基礎班 (8) Java Data Structure 劉根豪台大電機所網路資料庫研究室 Email: kenliu@arbor.ee.ntu.edu.tw 1 2 Java AWT package Java Swing package Component: 一些 GUI 元件, 如 :Button Label 等 Container: 用來放置 GUI 元件的地方 Container

More information

投影片 1

投影片 1 Chap 8 繼承 抽象類別與介面 8-1 類別的繼承 8-2 介面 8-3 介面的繼承 8-4 抽象類別 8-5 抽象類別與介面 8-6 常數類別 8-1 類別的繼承 8-1-1 類別架構 8-1-2 類別的繼承 8-1-3 覆寫和隱藏父類別的方法 8-1-4 隱藏父類別的成員變數 8-1-5 使用父類別的建構子 8-1-1 類別架構 - 繼承關係 類別的繼承關係可以讓我們建立類別架構, 在 UML

More information

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检 2016 年 上 半 年 软 件 设 计 师 考 试 真 题 ( 下 午 题 ) 下 午 试 题 试 题 一 ( 共 15 分 ) 阅 读 下 列 说 明 和 图, 回 答 问 题 1 至 问 题 4, 将 解 答 填 入 答 题 纸 的 对 应 栏 内 说 明 某 会 议 中 心 提 供 举 办 会 议 的 场 地 设 施 和 各 种 设 备, 供 公 司 与 各 类 组 织 机 构 租 用 场

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

图形学 Project 1 要求 多边形区域填充 ( 算法不限 ) 使用说明 例 1 第一步, 鼠标随意在界面中的画布上点击两次, 则两点间连一条直线 ; 第二步, 画第三个顶点时, 自动连结成为三角形 ; 第三步, 按顺序依次点击, 则按点击顺序形成多边形, 每次多边形变化时, 第一个点和最后

图形学 Project 1 要求 多边形区域填充 ( 算法不限 ) 使用说明 例 1 第一步, 鼠标随意在界面中的画布上点击两次, 则两点间连一条直线 ; 第二步, 画第三个顶点时, 自动连结成为三角形 ; 第三步, 按顺序依次点击, 则按点击顺序形成多边形, 每次多边形变化时, 第一个点和最后 图形学 Project 1 要求 多边形区域填充 ( 算法不限 ) 使用说明 例 1 第一步, 鼠标随意在界面中的画布上点击两次, 则两点间连一条直线 ; 第二步, 画第三个顶点时, 自动连结成为三角形 ; 第三步, 按顺序依次点击, 则按点击顺序形成多边形, 每次多边形变化时, 第一个点和最后 一个点自动连接起来 ; 第四步, 当感觉满意时, 单击 FILL, 则多边形内部就被填充了 例 2 单击

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

untitled

untitled 1 Outline 類别 欄 (1) 類 類 狀 更 易 類 理 若 類 利 來 利 using 來 namespace 類 ; (2) namespace IBM class Notebook namespace Compaq class Notebook 類别 類 來 類 列 欄 (field) (property) (method) (event) 類 例 立 來 車 類 類 立 車 欄 料

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

Microsoft Word - 投影片ch12

Microsoft Word - 投影片ch12 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 本章學習目標 學習如何分割檔案 第十二章大型程式的發展與常用的類別庫 認識類別庫, 以及如何取用在不同類別庫裡的類別 建構 package 的階層關係 學習 Java 裡常用的類別庫 大型程式的發展與常用的類別庫 12-2 12.1 檔案的分割 分割檔案的實作 : 1. 依序建立兩個類別檔案, 並置於同一個資料夾內

More information

Microsoft Word - 投影片ch06

Microsoft Word - 投影片ch06 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第六章陣列 本章學習目標認識陣列與一般資料型態的不同認識一維與二維陣列學習陣列的應用 陣列 6-2 6.1 一維陣列 一維陣列 (1-dimensional array) 可以存放多個相同資料型態的資料 6.1.1 一維陣列的宣告與記憶體的配置 要使用陣列必須經過兩個步驟 :(1) 宣告陣列 (2) 配置記憶體給該陣列

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

Microsoft Word - CH14.doc

Microsoft Word - CH14.doc 14-1 藍芽遙控車 14-2 機器人介紹 14-3 傳送命令 14-4 NXT 端程式 14-5 電腦程式 14-6 進階挑戰 14-7 總結 14-1 藍芽遙控車 新版的 LEGO MINDSTORMS NXT 2.0 提供了 Remote Control 介面, 讓使用者可以遙控 NXT 除了 NXT-G 之外,BricxCC 的 Brick Joystick 工具與 NeXT Tools for

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

投影片 1

投影片 1 計算機程式及實習 期末報告 題目 : 六宿炒翻天 班級 : 奈米一乙姓名 : 陳洋翼學號 :4A514050 老師 : 謝慶存 程式說明 設計結帳系統, 選擇數量後, 在按下計算, 將會顯示總金額 若是老人或小孩, 將可享 8 折或 9 折的優惠 程式畫面 填選數量 在火腿蛋炒飯的數量選擇 1, 並按下計算, 可得總金額 50 元 程式畫面 打折 填選完後, 若客人是小孩或老人, 選擇欲打折項目,

More information

電機工程系認可證照清單 2011/7/1

電機工程系認可證照清單                  2011/7/1 南 台 科 技 大 學 電 機 工 程 系 專 業 證 照 課 程 實 施 要 點 96 年 10 月 05 日 系 務 會 議 通 過 100 年 06 月 30 日 系 務 會 議 修 正 通 過 101 年 06 月 21 日 系 務 會 議 修 正 通 過 一 本 系 為 提 升 學 生 的 專 業 技 能, 特 訂 定 本 辦 法 二 實 施 對 象 : 本 系 日 間 部 96 學 年

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

46 2011 11 467 數位遊戲式學習系統 7 2011 11 467 47 3 DBGameSys 48 2011 11 467 正規化資料模組 如何配置並儲存電子化資料 以 便減少資料被重覆儲存的程序 DBGameSys的主要功能模組包 學習者 審核評分模組 含 正規化資料模組 審核評分 模組 高分列表模組3大區塊 系統資料庫 在正規化資料模組的執行 高分列表模組 過程中 先要求學習者瀏覽遊戲

More information

Microsoft PowerPoint - course2.ppt

Microsoft PowerPoint - course2.ppt Java 程 式 設 計 基 礎 班 (2) 莊 坤 達 台 大 電 信 所 網 路 資 料 庫 研 究 室 Email: doug@arbor.ee.ntu.edu.tw Class 2 1 回 顧 Eclipse 使 用 入 門 Class 2 2 Lesson 2 Java 程 式 語 言 介 紹 Class 2 3 Java 基 本 知 識 介 紹 大 小 寫 有 差 (Case Sensitive)

More information

Microsoft PowerPoint - VB14.ppt

Microsoft PowerPoint - VB14.ppt VB 列表盒 LISTBOX 應用 資科系 林偉川 執行畫面 1 2 1 重要屬性 LISTBOX 物件 (VB6) 新增至 LISTBOX 物件中 ADDITEM 自 LISTBOX 物件中刪除選取物件 REMOVEITEM 自 LISTBOX 物件中取出選取物件 ListIndex 顯示 LISTBOX 物件中紀錄個數 Listcount 3 LISTBOX 物件 (VB.NET) 重要屬性 新增至

More information