視窗程式設計 9. 清單方塊 Chih Hung Wang Reference:

Slides:



Advertisements
Similar presentations
index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Java 大学实用教程 ( 第 3 版 ) 主讲:程继洪 第 1 章 Java 语言概述  本章导读 Java 语言的诞生Java 语言的诞生 学习 Java 的必要性 学习 Java 的必要性 Java 的特点及与 C/C++ 之关系Java 的特点及与 C/C++ 之关系.
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 5 章 JSP 与 JavaBean JavaBean 是一个可重复使用的软件组件, 是遵循一定标准、用 Java 语言编写的一 个类,该类的一个实例称为一个 JavaBean ,简称 bean.
4.体词 体词包括:名词,处所词,方位词,时间词,区别词,数词,量词以及一部分代词。.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
近二年原油價格高漲對台灣油品供應商的影響─以台塑石油及台灣中油為例
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
面向对象的程序设计(一).
面向对象程序设计(Java) 徐志红
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
實驗五:多媒體播放器選單介面.
視窗程式設計 2. 視窗版面配置 Chih Hung Wang Reference:
第一章 面向对象程序设计.
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之二).
精英型软件人才 培养模式的探索与实践 卢 苇 北京交通大学国家示范性软件学院.
程設一.
類別與物件 Class & Object.
第一讲 面向对象程序设计概论 苏州大学 计算机科学与技术学院.
實驗四:單位轉換程式.
第11章 Android GPS位置服务与地图编程
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
Java 程式設計 講師:FrankLin.
Ch13 集合與泛型 物件導向程式設計(2).
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
Swing高级组件 主讲:赖国荣 QQ:
視窗程式設計 10. 組合方塊與對話盒 Chih Hung Wang Reference:
Java程序设计 第15章 创建用户界面.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
职责链模式.
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
第4章 物件導向分析與設計簡介 4-1 物件導向的軟體系統開發 4-2 物件導向分析與設計 4-3 UML的物件導向分析與設計
Java程序设计 第9章 继承和多态.
Java语言程序设计 第八部分 Applet小程序.
辅导课程十三.
DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项.
Ch04 事件處理 物件導向系統實務.
组合模式.
集合框架和泛型(一).
C/C++/Java 哪些值不是头等程序对象
第二章 Java基本语法 讲师:复凡.
Java變數 2014/6/24.
開發Java程式語言的工具 JDK.
第12章 组合模式 Deng Song
QQ群 主要用于线下讨论答疑 用于发布一些通知公告 修该备注,如 经济学院_2019_张三. 刘东华 信息技术中心 敬宾楼1406
4.5 对话框.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Chih-Hung Wu 吳智鴻 數位內容科技學系 TEL:
Review 1~3.
辅导课程十一.
第4章 数组与字符串 学习目标 本章要点 上机练习 习 题.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
Java语言程序设计 清华大学出版社 第6章 java图形与图像处理.
方格紙上畫正方形.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
6 集合类与泛型.
婚姻关系的开始 ——来自神的祝福! (创2:18-25)
第二章 Java基本语法 讲师:复凡.
Summary
Presentation transcript:

視窗程式設計 9. 清單方塊 Chih Hung Wang Reference: 1. Java 2 視窗程式設計,文魁出版社,位元文化編著 (2008) (教科書) 2. 深入研究Java Swing,上奇資訊股份有限公司,黃嘉輝著 (2011) 3. Java SE 6.0視窗程式設計之道,碁峰出版社,黃嘉輝著 (2008) 4. Java 初學指引,博碩文化,陳錦輝著 (2010) 視窗程式設計 9. 清單方塊 Chih Hung Wang

JList類別的運作架構 清單方塊用於供使用者選取清單內的一個或數個項目,如下圖所示。 清單方塊將由JList類別建立,繼承架構如下所示。

處理選取方式的ListSelectionModel介面 處理資料的ListModel介面 JList類別並不處理清單方塊內顯示選項的內容,而將這個工作交給實作ListModel介面的Model物件。所以,當取得選項資料時,將呼叫實作ListModel介面之類別的方法,而不是JList類別的方法。JList類別預設使用的ListModel物件,其型別為DefaultListModel類別。   ListModel介面規範實作介面的類別,必須提供註冊/移除監聽ListDataEvent事件的監聽器物件。ListDataEvent事件將在新增、移除或改變清單方塊內選項時,被觸發。 處理選取方式的ListSelectionModel介面 JList類別所建立的清單方塊,將提供單選、多選與不連續多選三種方式。對於選取功能的處理,將由實作ListSelectionModel介面的Model物件負責。 但由於JList類別將定義處理ListSelectionModel物件所需使用的方法,這些方法將把傳入參數設定給JList物件實際使用的ListSelectionModel物件。JList類別預設使用的ListSelectionModel物件,其型別為DefaultListSelectionModel類別將以String方式顯示選項。 ListSelectionModel介面定義了許多增加、移除或改變選取範圍的方法,並規範實作介面的類別,必須提供註冊/移除監聽ListSelectionEvent事件的監聽器。ListSelectionEvent事件將於清單方塊的選取範圍發生改變時,被觸發。

JList類別的基本運用 處理畫面顯示的ListCellRenderer JList類別所建立的清單方塊,其選項的顯示方式,將由實作ListCellRenderer介面的物件負責。JList類別預設使用的ListCellRenderer物件,其型別為DefaultListCellRenderer類別。透過實作ListCellRenderer介面或繼承DefaultListCellRenderer類別,您可自訂處理清單方塊顯示方式的ListCellRenderer物件。 JList類別的基本運用 這一節將為您介紹以JList類別建立清單方塊的基本觀念,包括建立單選、複選與不連續複選三種類型的清單方塊,以及ListSelectionEvent事件的回應。 範例8-1將示範建立三種選取方式的清單方塊,並運用回應ListSelectionEvent事件的機會取得使用者選取之選項,執行結果如下圖所示。

JList類別的建構子 以下將介紹JList類別建構子的規格: public JList() public JList(Vector<?> listData) public JList(Object[] listData) public JList(ListModel dataModel) JList類別的常用方法 下表將列出JList類別較常運用的方法。

ListSelectionEvent事件的回應 當清單方塊內選項的選取狀態改變時,將觸發ListSelectionEvent事件。請注意!是狀態改變,不論是由選取或取消選取均將引發事件。回應此事件的監聽器必須實作ListSelectionListener介面,並呼叫addListSelectionListener()方法註冊。圖為ListSelectionEvent類別的繼承架構:

void valueChanged(ListSelectionEvent e) 以下為ListSelectionListener介面定義了一個void itemStateChanged()方法,規格如下: void valueChanged(ListSelectionEvent e) ListSelectionEvent事件類別除繼承EventObject類別定義的方法,還提供下表所列的方法。

回應ListSelectionEvent事件時,必須留意以下兩件事情。 當運用滑鼠點選選項時,按下與放開滑鼠按鍵的動作,均將引發ListSelectionEvent事件,故監聽器將收到兩次事件。由於第一個引發的事件,發生於滑鼠按下與放開事件之間,故為連續事件。此時,您可以呼叫getValueIsAdjusting()方法,判斷欲處理連續事件還是獨立事件,避免處理兩次事件回應動作而產生副作用,請參考範例8-1的說明。若以鍵盤按鍵移動被選取的選項,則將僅引發一次ListSelectionEvent事件。 監聽器物件回應事件時,無法從ListSelectionEvent物件取得清單方塊內哪些選項被選取。因此,必須取得發出事件的清單方塊,然後呼叫getSelectedValue()方法、getSelectedValues()方法、getSelectedIndex()方法與getSelectedIndices()方法取得被選取選項的資訊。

清單方塊內選項的排列 JList類別將提供三種顯示清單方塊內選項的方式,欲設定時,需呼叫setLayoutOrientation()方法,此方法為JDK 1.4開始新增。呼叫時,將傳入下表代表排列方式的JList常數。 範例8-2將以清單方塊顯示在『C:\』資料夾內,各檔案的路徑與名稱,並運用視窗上方的群組選擇按鈕控制清單方塊顯示選項的方式,執行結果如下圖所示,預設使用垂直排列(VERTICAL)。

下圖為水平換行排列(HORIZONTAL_WRAP)。 下圖為垂直換行排列(VERTICAL_WRAP)。

選項資料的操作 – ListModel物件與ListDataEvent事件 前面提過清單方塊將運用Model物件處理選項資料。清單方塊預設使用的Model物件型別為DefalutListModel類別,下表將說明較重要的方法:

範例8-3將列出C:\資料夾內所有檔案,並介紹如何運用Model物件控制清單方塊內顯示以下三種資料: 資料夾內所有檔案及資料夾 僅列出檔案 僅列出資料夾 執行結果如下圖所示。 ListDataEvent事件的回應 當新增/刪除/修改Model物件內選項資料時,將觸發ListDataEvent事件。ListDataEvent事件的監聽器物件必須實作ListDataListener介面,該介面將規範監聽器類別必須實作以下方法:

ListDataEvent事件類別除繼承EventObject類別定義的方法,還提供下表所列的方法。

範例8-4將介紹如何運用Model物件處理清單方塊的選項,以及ListDataEvent事件的回應,執行結果如下圖所示。 以轉譯器自訂選項的顯示 Swing為了讓程式設計師能夠更有彈性地自訂清單方塊內選項的顯示方式,提供ListCellRenderer介面供程式設計師實作處理選項繪製的轉譯器類別。JList類別預設使用的轉譯器之型別為DefaultListCellRenderer類別。 ListCellRenderer介面將規範一個getListCellRendererComponent()方法。當顯示清單方塊時,JList類別將呼叫轉譯器物件,取得顯示清單方塊內選項的元件,回傳值型別為Component類別。以下為getListCellRendererComponent()方法的規格: Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)

範例8-5將分別以實作ListCellRenderer介面與繼承DefaultListCellRenderer類別的方式,定義處理選項顯示的轉譯器,執行結果如下圖所示。