宣傳語
編程成功之路從此開始!
內 容 簡 介
在內容編排上由淺入深,讓讀者循序漸進地掌握編程技術;在內容講解上結合豐富的圖解和形象的比喻,幫助讀者理解“晦澀難懂”的技術;在內容形式上附有大量的提示、技巧、說明、情景套用、實戰練習等欄目,夯實讀者編程技術,豐富編程經驗。全書共20章,分為4篇進行介紹,第1篇為基礎篇,包括Java開發前奏、搭建Java開發環境、 紮實Java語言基本語法、掌握算法和流程控制、使用Eclipse開發工具、探秘面向對象程式設計、初探Java數組;第2篇為核心篇,包括字元串處理、集合類、使用異常處理機制、掌握Java的I/O技術、精通多執行緒技術、枚舉與泛型;第3篇為高級篇,包括Swing基礎知識、JDBC技術、Swing高級組件、GUI事件處理機制、網路程式設計;第4篇為實戰篇,包括進銷存管理系統、 企業內部通信系統。
本書附有配套光碟,光碟中提供有本書所有程式的原始碼、重點和難點的實例視頻錄像,其中,原始碼全部經過精心測試,能夠在Windows 2000、Windows XP、Windows 2003、Windows 7中編譯和運行。
本書適合Java編程愛好者、初學者和中級開發人員使用,也適合作為大中專院校和培訓機構的教材使用。
前 言
讓想要學習編程的人員都能夠學會編程!
我可以學會編程嗎?
當然可以!即使你沒有基礎,即使你是非計算機專業畢業,即使你已過而立之年,甚至是只有國中畢業。我國最早的計算機反病毒專家、江民防毒軟體創始人王江民,國中畢業,38歲開始學習計算機,因為英語基礎不好,很多人認為他根本沒有學會編程的可能。但王江民沒有感覺自己不行,硬是克服各種困難,成為我國最成功的程式開發人員之一。
王江民學習編程的訣竅是什麼?
是實踐。王江民說:“計算機是實踐性非常強的學科。我搞計算機是用計算機,不是學計算機。” 王江民首先學的是BASIC語言。當時,為了輔導上國小的孩子,對軟體一片空白的王江民竟然決定編寫程式代替家長輔導。短短3個月,王江民就邊學邊實踐,編好了一套數學語文教學軟體,試過後效果奇佳,參加電腦報軟體交流,被評為第二名,譽為“教育軟體第一”。因為這次成功,極大激發了王江民對編程的興趣,使他從此把精力轉到了軟體領域。
所以說:實踐,是學習編程的最好方法,也是培養編程樂趣、捕獲發展機遇的最佳途徑。值得注意的是,不要等學完全部知識才去實踐,要隨時學習,隨時實踐,哪怕只學了一點點。
這本書適合我嗎?
非常適合!本書是學習Java編程的最佳選擇。所講內容通俗易懂,易於學習,貼近實踐。對於學習中的難點、重點,注意結合實際開發,採用情景套用的方式進行介紹和練習。本書光碟提供了完整的視頻講座,可以對照本書內容循序漸進進行學習。利用本書,不但可以學會編程,更能激發學習者理論聯繫實際的熱情,開發出符合市場需求的軟體和項目。
本書內容
本書分為基礎篇、核心篇、高級篇和實戰篇,共20章內容,內容安排依照從零起步、循序漸進的學習順序,全面提高讀者學、練、用的能力。本書知識結構如下圖所示。
本書特色
最基礎、最易學
為了讓初學者易於學習,本書力求做到內容通俗易懂、講解寓教於樂。對於初學者難以理解的專業術語,本書都進行了形象的解釋,有些還提供了例圖。書後附錄中又單獨將專業術語提煉出來,供讀者學習時參考。例如,在講解父類與子類的關係時,為使讀者更容易理解,筆者以圖形、三角形與等邊三角形為例,圖形類可以作為所有圖形的父類,其子類包括三角形、四邊形等,三角形也可以作為父類,其子類包括等邊三角形、等腰三角形等,Java中的繼承關係也是如此,在進行講解時,還配有如下圖所示的圖形。
語音視頻講座
為了方便讀者學習本書的內容,本書附贈光碟中提供了視頻講座,講解細膩、層次清楚、互動性強,不但可以加深讀者對書中內容的理解,還可以引導讀者掌握“是什麼”、“為什麼”、“怎么辦”、“應注意些什麼”的編程思維能力。所包含的視頻不僅對書中的內容進行了詳細介紹,還對相關的技術進行了有效的擴展,對開發中常犯的各種錯誤給出了視頻解決方案。
注重實用性
初學者經常會遇到這樣的情況,書中講解的技術能夠理解,但不知道如何套用,例如,在學習抽象類時,讀者能夠自己定義抽象類並且能夠從抽象類派生子類,但卻不知道抽象類能夠做什麼,在哪裡套用抽象類。本書在介紹技術時,注意強調技術的實用性,並且通過實例突出技術的套用價值。對於一些典型的套用,書中通過“情景套用”欄目進行重點介紹。
實戰互動練習
要掌握一項技術,最佳的方式就是多練習、多實踐。本書每章都提供了多個供讀者實踐的實例任務,讀者可以對照實例檢驗對知識的掌握情況。每個實例任務都分為“題目描述”、“技術指導”和“緊急救援”三部分,其中,“題目描述”給出了實例功能的詳細描述和效果圖,“技術指導”給出了開發思路和關鍵技術,“緊急救援”提供了下載實例源碼和開發文檔的連結地址。
超值DVD光碟
為了幫助讀者學習和使用書中的實例,本書附贈有DVD光碟,裡面不僅提供有書中所有實例項目的原始碼、素材、光碟使用說明書,還提供有視頻專題錄像及5個項目源碼。光碟目錄如下圖所示。
本書適用人群
本書是一部零基礎編程圖書,非常適合以下人員閱讀:
零基礎的初學編程人員 國中級程式開發人員
編程愛好者 想學編程的各企、事業在職人員
大中專院校的老師和學生 相關培訓機構的老師和學員
本書參與作者
本書由明日科技組織編寫,參加編寫的有陳丹丹、李鍾尉、李偉、楊麗、顧麗麗、劉玲玲、孟范勝、董大永、李繼業、尹強、張磊、王小科、王軍、趙會東、賽奎春等。由於作者水平有限,疏漏和不足之處在所難免,歡迎廣大讀者提出寶貴意見。
非學無以廣才,非志無以成學。
祝大家讀書快樂!
明日科技
目 錄
第1篇 基礎篇
第1章 Java開發前奏 16
1.1 Java簡介 17
1.1.1 什麼是Java語言 17
1.1.2 與其他語言相比Java的優勢 17
1.1.3 計算機語言中Java近幾年的排行 18
1.1.4 Java的發展史 18
1.1.5 Java成功案例 19
1.2 Java特性 20
1.2.1 Java的套用領域 20
1.2.2 Java語法的特徵 21
1.3 怎么學Java 22
1.3.1 Java程式設計師的成長之路 22
1.3.2 如何學好Java 23
1.4 本章小結 23
第2章 搭建Java開發環境 24
2.1 搭建Java開發環境 25
2.1.1 下載JDK 25
2.1.2 安裝JDK 27
2.1.3 Windows系統下配置和測試JDK 27
2.2 Java程式的開發過程 29
2.3 一個簡單的Java程式 30
2.3.1 構建Java程式 30
2.3.2 編譯和運行Java程式 31
2.3.3 使用Java核心API文檔 31
2.4 實戰練習 32
2.4.1 下載JRE 32
2.4.2 將JDK安裝到D糟 33
2.4.3 編寫程式輸出小豬臉圖像 33
2.5 本章小結 34
第3章 紮實Java語言基本語法 35
3.1 使用常量與變數 36
3.1.1 常量的概念及使用 36
3.1.2 變數的概念及命名規則 37
3.1.3 變數的有效範圍 38
3.2 認識基本的數據類型 41
3.2.1 整數類型 41
3.2.2 浮點類型 43
3.2.3 字元類型 43
3.2.4 布爾類型 44
3.2.5 基本數據類型間的轉換 44
3.3 熟練運用Java運算符 45
3.3.1 賦值運算符 46
3.3.2 算術運算符 46
3.3.3 關係運算符 47
3.3.4 邏輯運算符 48
3.3.5 位運算符 50
3.3.6 其他運算符 53
3.3.7 運算符的優先權別及結合性 55
3.3.8 情景套用一:加密可以這樣簡單 55
3.3.9 情景套用二:位運算實現
3.3.9 兩個變數值的互換 56
3.4 了解Java標識符與關鍵字 56
3.4.1 標識符 57
3.4.2 關鍵字 57
3.5 編碼規範 57
3.5.1 Java命名規範 58
3.5.2 代碼編寫規則 58
3.6 Java程式的注釋 59
3.6.1 單行注釋 59
3.6.2 使用多行注釋 59
3.6.3 文檔注釋的使用 60
3.7 實戰練習 60
3.7.1 獲取字元的unicode編碼 60
3.7.2 計算長方形的周長 60
3.7.3 類型轉換實例 61
3.8 本章小結 62
第4章 掌握算法和流程控制 63
4.1 認識算法 64
4.1.1 什麼是算法 64
4.1.2 算法的描述方法 64
4.2 運用分支語句 65
4.2.1 簡單的if條件語句 65
4.2.2 if-else條件語句 66
4.2.3 if-else-if多分支語句 68
4.2.4 switch多分支語句 69
4.2.5 if語句和switch語句的區別 72
4.2.6 情景套用一:根據消費金額計算折扣 73
4.2.7 情景套用二:判斷某一年是否為閏年 74
4.3 學習循環語句 74
4.3.1 for循環語句 74
4.3.2 while循環語句 76
4.3.3 do-while循環語句 78
4.3.4 foreach語句 80
4.3.5 各循環語句間的區別 81
4.4 學習跳轉語句 81
4.4.1 break跳轉語句 81
4.4.2 continue跳轉語句 82
4.4.3 return跳轉語句 82
4.5 實戰練習 83
4.5.1 判斷用戶輸入月份所屬的季節 83
4.5.2 輸出乘法表 83
4.5.3 計算階乘 84
4.6 本章小結 84
第5章 使用Eclipse開發工具 85
5.1 為什麼要使用Eclipse開發工具 86
5.2 Eclipse的工作檯 86
5.2.1 Eclipse工作檯概述 86
5.2.2 透視圖 87
5.2.3 編輯器 88
5.2.4 熟悉Eclipse的選單欄和工具列 89
5.3 怎樣編寫Java程式 90
5.3.1 新建Java項目 90
5.3.2 新建Java類 91
5.3.3 編寫Java代碼 93
5.3.4 運行程式 94
5.3.5 保存並關閉Java項目 94
5.4 探秘Eclipse資源管理 95
5.4.1 導入Java類 95
5.4.2 導入Java項目 96
5.4.3 導出Java項目 97
5.5 本章小結 98
第6章 探秘面向對象程式設計 99
6.1 什麼是面向對象程式設計 100
6.1.1 面向對象程式設計的概述 100
6.1.2 面向對象程式設計的特點 101
6.2 解密類和對象 102
6.2.1 定義類 103
6.2.2 成員變數和局部變數 104
6.2.3 構造方法的概念及用途 105
6.2.4 創建對象 106
6.2.5 使用對象 107
6.2.6 銷毀對象 108
6.3 使用包 108
6.3.1 包的概念 108
6.3.2 創建包 108
6.3.3 使用包中的類 109
6.4 了解Java中的繼承關係 110
6.4.1 繼承的概念 110
6.4.2 創建子類 110
6.4.3 繼承的使用原則 111
6.4.4 使用this關鍵字 112
6.4.5 使用super關鍵字 112
6.5 認識多態技術 113
6.5.1 方法的重載 114
6.5.2 方法的覆蓋 115
6.6 抽象類 116
6.7 final類與final方法 119
6.7.1 final類 119
6.7.2 final方法 120
6.8 掌握Java中的接口 120
6.8.1 定義接口 121
6.8.2 實現接口 121
6.9 情景套用 123
6.9.1 情景套用一:定義不能重寫的方法 123
6.9.2 情景套用二:溫度轉換 124
6.10 實戰練習 125
6.10.1 定義員工類 125
6.10.2 多態方式計算圖像面積 125
6.10.3 求解漢諾塔問題 126
6.11 本章小結 126
第7章 初探數組 127
7.1 一維數組 128
7.1.1 聲明一維數組 128
7.1.2 創建一維數組 128
7.1.3 初始化一維數組 130
7.1.4 使用一維數組 131
7.2 二維數組 133
7.2.1 聲明二維數組 133
7.2.2 創建二維數組 133
7.2.3 初始化二維數組 135
7.2.4 使用二維數組 135
7.3 運算元組 136
7.3.1 複製數組 137
7.3.2 排序數組 138
7.3.3 比較數組 139
7.3.4 搜尋數組 140
7.3.5 填充數組 141
7.3.6 傳遞數組 142
7.4 實戰練習 143
7.4.1 使用冒泡排序法對數組進行排序 143
7.4.2 將二維數組中的行列互換 144
7.5 本章小結 144
第2篇 核心篇
第8章 字元串處理 146
8.1 初識字元串 147
8.1.1 字元串常量 147
8.1.2 聲明字元串變數 147
8.1.3 創建字元串 147
8.2 連線字元串 149
8.2.1 字元串與字元串的連線 149
8.2.2 字元串與其他類型數據的連線 150
8.3 字元串操作 151
8.3.1 比較字元串 152
8.3.2 獲取字元串的長度 154
8.3.3 字元串的大小寫轉換 154
8.3.4 查找字元串 155
8.3.5 獲取字元串的子字元串 157
8.3.6 替換或去除字元串中的空格 157
8.3.7 分割字元串 158
8.4 格式化字元串 159
8.4.1 常規類型的格式化 159
8.4.2 日期和時間字元串格式化 161
8.4.3 情景套用一:格式化當前日期 165
8.4.4 情景套用二:獲取字元串中的漢字個數 166
8.5 使用StringBuilder類 167
8.5.1 創建字元串生成器 167
8.5.2 字元串生成器的套用 168
8.6 使用正則表達式 170
8.7 實戰練習 172
8.7.1 將數字格式化為貨幣字元串 172
8.7.2 判斷字元串中是否包含有數字字元 172
8.7.3 驗證IP位址是否有效 173
8.8 本章小結 173
第9章 集合類 174
9.1 集合類概述 175
9.2 Collection接口 175
9.2.1 addAll()方法 175
9.2.2 removeAll()方法 176
9.2.3 retainAll()方法 177
9.2.4 containsAll()方法 178
9.2.5 toArray(T[] t)方法 179
9.3 List集合 179
9.3.1 List接口的實現類 180
9.3.2 List的用法 180
9.3.3 情景套用:List集合傳遞學生信息 182
9.4 Set集合 183
9.4.1 使用HashSet類 183
9.4.2 使用TreeSet類 185
9.5 Map集合 187
9.5.1 Map接口 187
9.5.2 Map接口的實現類 188
9.5.3 情景套用:實現省市級聯輸出 189
9.6 實戰練習 190
9.6.1 去除List集合中的重複值 190
9.6.2 使用Map集合保存電話信息 191
9.7 本章小結 191
第10章 使用異常處理機制 192
10.1 什麼是異常處理 193
10.2 常見異常列表 193
10.3 Java異常處理 194
10.3.1 錯誤 194
10.3.2 捕獲異常 195
10.4 內置異常類 196
10.4.1 Error類 197
10.4.2 Exception類 197
10.5 自定義異常 199
10.6 在方法中拋出異常 200
10.6.1 使用throws關鍵字拋出異常 200
10.6.2 使用throw關鍵字拋出異常 201
10.7 異常處理使用原則 202
10.8 實戰練習 202
10.8.1 自定義異常類 202
10.8.2 使用try-catch語句捕獲異常 203
10.8.3 捕捉求負數的公約數異常 203
10.9 本章小結 204
第11章 掌握Java的I/O技術 205
11.1 Java的I/O處理方式 206
11.1.1 I/O的基本模式 206
11.1.2 Java提供的流類 206
11.1.3 輸入流 207
11.1.4 輸出流 208
11.2 以byte為數據單位的流類 208
11.2.1 InputStream類 209
11.2.2 OutputStream類 210
11.3 以char為數據單位的流類 211
11.3.1 Reader類 211
11.3.2 Writer 212
11.4 常用I/O處理方式 213
11.4.1 檔案類 214
11.4.2 檔案的位元組輸入輸出流 216
11.4.3 檔案的字元輸入輸出流 218
11.4.4 帶快取的輸入輸出流 221
11.4.5 對象序列化 223
11.4.6 情景套用一:檔案鎖定 225
11.4.7 情景套用二:將用戶輸入的內容保存到文本檔案 225
11.5 對檔案及資料夾進行操作 226
11.5.1 複製檔案 226
11.5.2 複製資料夾 227
11.5.3 刪除檔案 229
11.5.4 分行寫入檔案 229
11.6 實戰練習 230
11.6.1 字元的簡單加密與解密 230
11.6.2 將用戶信息寫入到檔案 231
11.6.3 獲取磁碟中所有的檔案名稱 231
11.7 本章小結 232
第12章 精通多執行緒技術 233
12.1 執行緒概述 234
12.1.1 進程 234
12.1.2 執行緒 234
12.2 執行緒的創建 235
12.2.1 繼承Thread類 236
12.2.2 實現Runnable接口 237
12.2.3 兩種創建執行緒方式的比較 239
12.3 執行緒的生命周期 239
12.4 執行緒的優先權及執行順序 240
12.4.1 執行緒的優先權 240
12.4.2 執行緒的執行順序 241
12.5 執行緒的控制 244
12.5.1 執行緒的啟動 244
12.5.2 執行緒的掛起 244
12.5.3 結束執行緒 248
12.5.4 執行緒組 249
12.5.5 情景套用一:使用守護執行緒 249
12.5.6 情景套用二:執行緒的插隊 250
12.6 執行緒的同步 251
12.6.1 執行緒安全 252
12.6.2 執行緒同步機制 253
12.7 執行緒通信 254
12.8 多執行緒產生死鎖 258
12.9 實戰練習 258
12.9.1 利用執行緒定時輸出信息 258
12.9.2 查看JVM中的執行緒名 259
12.9.3 查看執行緒的狀態 259
12.10 本章小結 260
第13章 枚舉與泛型 261
13.1 使用枚舉類型 262
13.1.1 使用枚舉類型設定常量 262
13.1.2 深入了解枚舉類型 264
13.1.3 使用枚舉類型的優勢 269
13.1.4 情景套用一:遍歷枚舉接口的元素 269
13.1.5 情景套用二:選擇合適的枚舉元素 270
13.2 使用泛型 270
13.2.1 回顧“向上轉型”與“向下轉型” 271
13.2.2 定義泛型類 272
13.2.3 泛型的常規用法 273
13.2.4 泛型的高級用法 276
13.2.5 泛型總結 278
13.3 實戰練習 278
13.3.1 判斷枚舉類型的值 278
13.3.2 使用通配符定義泛型類 279
13.4 本章小結 279
第3篇 高級篇
第14章 Swing基礎知識 282
14.1 Swing概述 283
14.1.1 Swing特點 283
14.1.2 Swing包 283
14.1.3 常用Swing組件概述 284
14.2 常見窗體 284
14.2.1 JFrame窗體 284
14.2.2 JDialog窗體 286
14.3 掌握基本組件 287
14.3.1 標籤組件 288
14.3.2 按鈕組件 289
14.3.3 文本組件 292
14.3.4 列表組件 294
14.3.5 情景套用一:實現按鈕關鍵字描紅 297
14.3.6 情景套用二:滑鼠經過時按鈕放大 298
14.4 向窗體中添加容器 299
14.4.1 JPanel面板的套用 299
14.4.2 JScrollPane面板的套用 300
14.4.3 分割面板的套用 301
14.4.4 選項卡面板的套用 303
14.5 選擇合理的布局方式 305
14.5.1 靈活指定組件位置的絕對布局 305
14.5.2 窗體默認的邊界布局 306
14.5.3 奇妙的格線布局 307
14.5.4 按指定方向擺放組件的流式布局 308
14.6 常用的事件監聽器 309
14.6.1 事件監聽器概述 309
14.6.2 事件監聽器 310
14.6.3 動作事件(ActionEvent)監聽器 311
14.6.4 焦點事件(FocusEvent)監聽器 312
14.7 實戰練習 313
14.7.1 簡單的計數器 313
14.7.2 通過單選按鈕選擇顯示圖片 313
14.7.3 為文本域設定背景 314
14.8 本章小結 314
第15章 JDBC技術 315
15.1 了解資料庫基礎知識 316
15.1.1 生活中的資料庫 316
15.1.2 了解資料庫的特點及分類 316
15.2 JDBC技術 317
15.2.1 什麼是JDBC技術 317
15.2.2 為什麼要在項目中添加資料庫驅動 317
15.3 認識JDBC中不可缺少的類與接口 318
15.3.1 管理資料庫驅動類DriverManager 318
15.3.2 資料庫連線接口Connection 318
15.3.3 傳送SQL語句接口Statement 319
15.3.4 可執行動態SQL的接口PreparedStatement 319
15.3.5 查詢結果集接口ResultSet 320
15.4 運算元據庫的步驟 320
15.4.1 載入JDBC驅動程式 321
15.4.2 創建資料庫連線 321
15.4.3 執行SQL語句 322
15.4.4 獲得查詢結果 323
15.4.5 關閉連線 323
15.5 常見的數據操作 324
15.5.1 添加數據 324
15.5.2 修改數據 325
15.5.3 刪除數據 326
15.5.4 查詢數據 326
15.5.5 使用預處理語句 328
15.6 實戰練習 330
15.6.1 查詢SQL Server數據表中前三條數據 330
15.6.2 查詢編程詞典9月份的總銷售量 331
15.6.3 笛卡兒乘積查詢 332
15.7 本章小結 332
第16章 Swing高級組件 333
16.1 為窗體添加選單 334
16.1.1 創建選單欄 334
16.1.2 創建選單 334
16.1.3 創建選單項 335
16.1.4 創建彈出式選單 337
16.1.5 創建個性化選單 337
16.2 實現為窗體添加工具列 340
16.2.1 創建工具列 340
16.2.2 為工具列添加工具按鈕 341
16.3 使用對話框 342
16.3.1 打開本地檔案的檔案對話框 342
16.3.2 為用戶提供信息對話框 345
16.3.3 色彩斑斕的顏色選擇對話框 346
16.3.4 實現確認操作的確認對話框 347
16.4 表格組件 349
16.4.1 實現創建表格 349
16.4.2 表格模型 350
16.4.3 維護表格模型 351
16.5 使用系統托盤 354
16.5.1 實現獲取系統托盤 354
16.5.2 怎樣為系統托盤添加圖示 355
16.5.3 添加彈出選單 355
16.6 實戰練習 357
16.6.1 明日版QQ界面設計 357
16.6.2 設計選擇日期的對話框 357
16.6.3 在表格中顯示銷售記錄 358
16.7 本章小結 359
第17章 GUI事件處理機制 360
17.1 掌握窗體事件 361
17.1.1 捕獲窗體焦點變化事件 361
17.1.2 捕獲窗體狀態變化事件 362
17.1.3 捕獲其他窗體事件 363
17.1.4 情景套用一:創建總顯示在最上方的窗體 365
17.1.5 情景套用二:創建內部子窗體 365
17.2 掌握滑鼠操作 366
17.2.1 滑鼠事件監聽器 366
17.2.2 滑鼠事件處理 367
17.3 掌握鍵盤控制事件 368
17.3.1 鍵盤事件監聽器 368
17.3.2 鍵盤事件處理 369
17.4 選項事件 371
17.5 表格模型事件 372
17.6 實戰練習 375
17.6.1 定義只能輸入整數或小數的文本框 375
17.6.2 設定文本對齊方式 375
17.7 本章小結 376
第18章 網路程式設計 377
18.1 網路程式設計基礎 378
18.1.1 區域網路和廣域網 378
18.1.2 網路協定 378
18.2 連線埠與套接字 379
18.2.1 連線埠 379
18.2.2 套接字 380
18.3 學習TCP編程原理 380
18.3.1 什麼是TCP協定 380
18.3.2 掌握TCP編程的常用類 381
18.3.3 如何編寫TCP程式 384
18.4 學習UDP編程原理 385
18.4.1 什麼是UDP協定 386
18.4.2 掌握UDP編程的常用類 386
18.4.3 如何編寫UDP程式 387
18.5 實戰練習 390
18.5.1 聊天室 390
18.5.2 獲取主機名、主機地址和本機地址 390
18.5.3 向客戶機傳送信息 391
18.6 本章小結 392
第4篇 實戰篇
第19章 進銷存管理系統 394
19.1 需求分析 395
19.1.1 需求分析 395
19.1.2 可行性分析 395
19.2 系統設計 395
19.2.1 項目規劃 395
19.2.2 功能結構分析 396
19.3 資料庫設計 396
19.3.1 E-R圖 396
19.3.2 數據表概要說明 398
19.3.3 主要數據表的結構 399
19.4 系統登錄模組設計 401
19.4.1 登錄功能設計 401
19.4.2 系統登錄模組設計 401
19.5 程式主界面的設計 404
19.5.1 創建主視窗 404
19.5.2 初始化程式主界面的initialize()方法 405
19.5.3 添加選單和工具按鈕的方法 406
19.5.4 創建Action對象的addFrameAction()方法 408
19.5.5 獲取功能窗體的getIFrame()方法 410
19.6 基礎信息模組設計 410
19.6.1 商品信息管理模組設計 410
19.6.2 商品添加功能設計 411
19.6.3 設定組件布局位置的
19.6.3 setupComponent()方法 414
19.6.4 商品修改與刪除功能設計 414
19.7 進貨管理模組設計 417
19.7.1 進貨單管理功能設計 417
19.7.2 初始化表格的
14.3.5 initTable()方法 421
19.7.3 初始化商品下拉選擇框的initSpBox()方法 421
19.7.4 初始化進貨單窗體的initTasks類 422
19.7.5 初始化進貨票號文本框的initPiaoHao()方法 423
19.8 銷售管理模組設計 423
19.8.1 銷售單管理功能設計 423
19.8.2 初始化銷售單窗體的initTasks類 425
19.9 庫存管理模組設計 426
19.9.1 庫存檔點功能設計 426
19.9.2 庫存價格調整功能設計 429
19.10 查詢統計模組設計 430
19.10.1 銷售排行功能設計 430
19.10.2 執行銷售排行功能的
14.3.5 事件監聽器 432
19.11 系統設定模組設計 432
19.11.1 操作員管理 432
19.11.2 許可權管理 435
19.12 資料庫模組 437
19.12.1 資料庫連線 437
19.12.2 獲取用戶信息的
14.3.5 getUser()方法 438
19.12.3 添加商品信息的addSp()方法 439
19.12.4 獲取所有商品信息的getSpInfos()方法 439
19.12.5 添加入庫信息的insertRukuInfo()方法 440
19.12.6 獲取最大入庫編號的getRuKuMainMaxId()
14.3.5 方法 441
19.12.7 更新用戶信息的updateUser()方法 442
19.13 本章小結 442
第20章 企業內部通信系統 443
20.1 系統分析 444
20.1.1 需求分析 444
20.1.2 可行性分析 444
20.1.3 編寫項目計畫書 445
20.2 系統設計 447
20.2.1 系統目標 447
20.2.2 系統功能結構 447
20.2.3 資料庫設計 447
20.2.4 系統預覽 449
20.2.5 資料夾組織結構 450
20.3 主窗體設計 450
20.3.1 創建主窗體 451
20.3.2 記錄窗體位置 454
20.4 公共模組設計 455
20.4.1 資料庫操作類 455
20.4.2 系統工具類 460
20.5 系統托盤模組設計 464
20.5.1 系統托盤模組概述 464
20.5.2 系統托盤模組技術分析 464
20.5.3 系統托盤模組實現 465
20.6 系統工具模組設計 466
20.6.1 系統工具模組概述 466
20.6.2 系統工具模組技術分析 467
20.6.3 系統工具模組實現 467
20.7 用戶管理模組設計 472
20.7.1 用戶管理模組概述 472
20.7.2 用戶管理模組技術分析 472
20.7.3 用戶管理模組實現 473
20.8 通信模組設計 477
20.8.1 通信模組概述 477
20.8.2 通信模組技術分析 478
20.8.3 通信模組實現 478
20.9 開發技巧與難點分析 482
20.10 使用JDK 6新增的系統托盤 482
20.11 本章小結 483
附錄A 專業術語表 484