視窗程式設計 Windows Programming 視窗元件二
大綱 清單 (List) 下拉式選單 (Combo Box) 功能表 (Menu) 功能表處理事件 面板 (Panel) 捲軸 (Scroller)
JList( 清單 ) 清單 是用來製作一連串的選項, 供使用者可以從清單中挑出所要選項, 所挑出可以有幾種方式, 例如 :
JList( 清單 ) 清單的建立 使用 DefaultListModel 來建立清單類別 如要建立清單, 有幾種方式, 使用 ListModel 介面是其中之一 基本語法表示如下 : DefaultListModel 清單 Model = new DefaultListModel( ); 例如 : DefaultListModel mylistmodel = new DefaultListModel();
JList( 清單 ) 在 ListModel 中使用 addelement 建立清單項目 基本語法表示如下 : 清單 Model.addElement("Java 物件導向 "); 例如 : mylistmodel.addelement("java 物件導向 "); mylistmodel.addelement("access 資料庫 "); mylistmodel.addelement("visual Basic.Net "); mylistmodel.addelement("asp.net");
JList 範例 S7.java JList1.java
JComboBox( 下拉式選單 ) 下拉式選單 與清單選項非常類似, 可以節省在視窗的設計空間, 利用點選下拉式鍵, 可顯現出清單型式供使用者做一選擇例如 :
JComboBox( 下拉式選單 ) 下拉式選單的建立 使用 javax.swing 套件中的 JComboBox 類別 在 swing 套件中, 下拉式選單的建立是使用 JComboBox 基本語法表示如下 : JComboBox 下拉式選單名稱 = new JComboBox( ); 例如 : JComboBox jcbox = new JComboBox( );
JComboBox( 下拉式選單 ) 在 JComboBox 中使用 additem 建立下拉式選單項目 基本語法表示如下 : 下拉式選單名稱.addItem(" 下拉式選單項目 "); 例如 : jcbox.additem( 資工系 "); jcbox.additem( 資管系 "); jcbox.additem( 財經系 "); jcbox.additem( 餐飲系 ");
JComboBox( 下拉式選單 ) 範例 S8.java
JMenu( 功能表 ) 功能表 在視窗設計上是一個非常重要的基本設計, 它是把 相關資料 集合在一個主選單之下, 功能表可以包含兩個以上主選單供選擇, 例如 :
JMenu( 功能表 ) 當我們點選這個主選單, 會將這些 相關資料 以清單方式呈現出, 供使用者選擇其中一項功能, 例如 :
JMenu( 功能表 ) 功能表的建立, 需要三個元件才能完成, 如前圖所示 JMenuBar: 是一個空白的控制列, 用來存放主選單 JMenu: 亦即供選則的主選單 JMenuItem: 列於主選單之下的各個功能項目 功能表的完成, 必須先建立 JMenuBar, 再來是 Jmenu, 最後才是 JMenuItem 各個功能項目的建立
JMenu( 功能表 ) 步驟 一 JMenuBar 的建立 使用 javax.swing 套件中的 JMenuBar 類別 在 swing 套件中, 空白的控制列的建立是使用 JMenuBar 基本語法表示如下 : JMenuBar 功能表名稱 = new JMenuBar( ); 例如 : JMenuBar mainmenu = new JMenuBar( );
JMenu( 功能表 ) 二 JMenu 的建立 建立主選單項目 JMenu 的功用在於建立主選單供選擇 基本語法表示如下 : JMenu 主選單名稱 = new JMenu( 主選單項目 "); 例如 : JMenu customermenu = new JMenu(" 客戶檔案 "); JMenu ordermenu = new JMenu(" 訂單檔案 "); JMenu deliverymenu = new JMenu(" 出貨資料 "); JMenu memomenu = new JMenu(" 備註 ");
JMenu( 功能表 ) 三 JMenuItem 各個功能項目的建立 建立各個功能項目 JMenuItem 功用在於點選主選單後, 會以清單方式呈現供選擇 基本語法表示如下 : JMenuItem 功能項目名稱 = new JMenuItem( 功能項目 "); 例如 : JMenuItem customermenuid = new JMenuItem(" 客戶編號 "); JMenuItem customermenuname = new JMenuItem(" 客戶名稱 "); JMenuItem customermenuaddress = new JMenuItem(" 客戶地址 "); JMenuItem customermenutel = new JMenuItem(" 客戶電話 ");
範例 P1.java S10.java
功能表處理事件 ( 一 ) 有幾個步驟可以完成功能表處理事件 : 1. 實作 ItemListener 項目傾聽介面 class SwingWindow extends JFrame implements ActionListener 2. 將功能表項目放置其中, 參考語法如下 : class SwingWindow extends JFrame implements ActionListener { JMenuItem customermenuid = new JMenuItem( 客戶編號 ); JMenuItem customermenuname = new JMenuItem( 客戶名稱 ); JMenuItem customermenuaddress = new JMenuItem( 客戶地址 ); JMenuItem ordermenuiddate = new JMenuItem( 訂單日期 );
功能表處理事件 ( 二 ) 3. 在子類別中加入功能表項目傾聽事件, 這樣功能表會根據本身所應進行選取動作執行, 參考語法如下 : customermenuid.addactionlistener(this); customermenuname.addactionlistener(this); customermenuaddress.addactionlistener(this); customermenudate.addactionlistener(this); 4. 建立提供功能表項目應如何執行的動作, 這種方式是要告知每個功能表項目所要執行的動作, 參考語法如下 : public void actionperformed(actionevent event)
功能表處理事件 ( 三 ) 5. 建立供功能表項目會得自告知的方法, 會根據所選的項目輸出其內容, 參考語法如下 : if(event.getsource()==customermenuid) { JOptionPane.showMessageDialog(null, 這是客戶的編號檔案, 客戶編號, JOptionPane.INFORMATION_MESSAGE); } if(event.getsource()==customermenuname) { JOptionPane.showMessageDialog(null, 這是客戶的名子檔案, 客戶名子, JOptionPane.INFORMATION_MESSAGE); }
功能表處理事件範例 C11.java
JMenu 範例 JMenuDemo.java
JMenu 範例二 NewJFrame.java
JMenu 實作 請實作一個記事本視窗介面 test.java S11.java
Panel ( 面板 ) 面板設計的建立 使用 javax.swing 套件中的 JTabbedPane( ) 類別 在 swing 套件中, 面板設計的建立是使用 JTabbedPane( ) 基本語法表示如下 : JTabbedPane 面板名稱 = new JTabbedPane ( ); 例如 : JTabbedPane tp = new JTabbedPane( );
Panel ( 面板 ) 建立每一面板頁籤標題 標題的建立有助於我們做方便選項 基本語法表示如下 : 面板名稱.add(" 頁籤標題名稱 ", 頁籤圖形, 頁籤控制項, " 游標滑過時顯示的提示文字 "); 例如 : tp.addtab( 資工系, null, null, 資工系 "); 註 要是沒有頁籤圖形或頁籤控制項, 可使用 null 代表
Panel 範例 JTabbedPaneDemo.java
JTabbedPanel( 頁標籤 ) 頁標籤可以讓程式設計者將許多功能相近但又無法擺放在一起的程式整合在一起, 讓視窗程式在設計時, 介面能更清新, 功能面更明確. 我們可以把 Component 加到 JTabbedPane 內, 使它成為一個分頁, 以便進行必要的管理.
JTabbedPanel JTabbedPaneDemo.java