1 / 13

CH03 為自己的視窗加上小元件

CH03 為自己的視窗加上小元件. 物件導向系統實務. 選擇前兩次介紹的各種建窗方式 , 建立一個視窗. 事件與傾聽者間的關係. 屬 java.awt.event.* 的 mouseListener 介面,介面中定義了 mouseClick, mousePress… 等方法. [ 按鈕1 ] 委任一個 MouseListener 物件,以接收並回 應 mouseClick 事件源. 事件 : 敲擊滑鼠按鍵 ( mouseClick). . 屬 java.awt.* 的 Button 內的方法. addMouseListener(…). 按鈕 1.

kendis
Download Presentation

CH03 為自己的視窗加上小元件

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CH03 為自己的視窗加上小元件 物件導向系統實務

  2. 選擇前兩次介紹的各種建窗方式,建立一個視窗選擇前兩次介紹的各種建窗方式,建立一個視窗

  3. 事件與傾聽者間的關係 屬java.awt.event.* 的mouseListener介面,介面中定義了mouseClick, mousePress…等方法 [按鈕1]委任一個 MouseListener 物件,以接收並回 應mouseClick 事件源 事件:敲擊滑鼠按鍵 (mouseClick)  屬java.awt.*的Button內的方法 addMouseListener(…) 按鈕1 接收及回應 mouseClick  MouseListener物件 委任一個

  4. 加入一個標籤元件

  5. 標籤JLABEL • JLabel元件繼承自JComponent類別,可以顯示一段文字內容或圖示 • JLabel label1 = new JLabel(“CLOSE”); • JLabel label1 = new Jlabel(new ImageIcon(“red.gif”);

  6. 範例1:加上一個標籤 • import javax.swing.*; • import java.awt.*; • import java.awt.event.*; • class Win6_1 • { public static void main(String [] args) • { MyJFrame6_1 f = new MyJFrame6_1(); • f.setSize(200,300); • f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); • f.setVisible(true); • } • } • class MyJFrame6_1 extends JFrame • { JLabel label1; • MyJFrame6_1() • { super("Win6_1"); • label1 = new JLabel("Hello JAVA World!!"); • add(label1); • } • }

  7. 加入一個按鈕元件

  8. 按鈕元件JBUTTON • 可以使用滑鼠按一下的按鈕元件,要完成可接收到按鈕指令,需要三步驟: • 建立JButton元件外觀 • 接上事件傾聽者 • 處理事件(寫程式,當發生按按鈕時,要做什麼) • JButton類別:

  9. 範例2:將範例1的視窗加上一個按鈕 • import javax.swing.*; • import java.awt.*; • import java.awt.event.*; • class Win6_2 • { public static void main(String [] args) • { MyJFrame6_2 f = new MyJFrame6_2(); • f.setSize(200,300); • f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); • f.setVisible(true); • } • } • class MyJFrame6_2 extends Jframe implements ActionListener • { JLabel label1; • JButton button1; • MyJFrame6_2() • { super("Win6_2"); • label1 = new JLabel("Hello JAVA World!!"); • add(label1); • button1 = new JButton("按我"); • button1.addActionListener(this); • add(button1); • } • public void actionPerformed(ActionEvent e) • { label1.setText("你按到按鈕了"); • } • }

  10. 討論: • 範例2的執行結果怪怪的?   我們需要為視窗作一個版面配置

  11. 版面配置LAYOUT MANAGER • 版面配置管理員(Layout Manager)可以編排新增的元件 • 不同的版面配置管理員,擁有不同預設的編排方式,只需依照需求選擇使用的版面配置管理員,就可以編排出漂亮的GUI介面 • FlowLayout版面配置

  12. 範例3:為範例2的視窗加上FLOWLAYOUT • import javax.swing.*; • import java.awt.*; • import java.awt.event.*; • class Win6_3 • { public static void main(String [] args) • { MyJFrame6_3 f = new MyJFrame6_3(); • f.setSize(200,300); • f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); • f.setVisible(true); • } • } • class MyJFrame6_3 extends Jframe implements ActionListener • { JLabel label1; • JButton button1; • MyJFrame6_3() • { super("Win6_3"); • this.setLayout(new FlowLayout(FlowLayout.CENTER)); • label1 = new JLabel("Hello JAVA World!!"); • add(label1); • button1 = new JButton("按我"); • button1.addActionListener(this); • add(button1); • } • public void actionPerformed(ActionEvent e) • { label1.setText("你按到按鈕了"); • } • }

  13. 作業 • 修改範例3,使得每按一次按鈕,標籤就會出現 “你按了?次按鈕”

More Related