(一)Java界面設計概述
1、Java 界面設計的用途
2、AWT 簡介
(1)Abstract Windows Toolkit 是最原始的工具包。
3、Swing 簡介
4、SWT 簡介
5、如何選擇 GUI 工具包(以上三個都是)
Swing 是最靈活、強大的GUI工具包,是以在界面開發中,首選Swing。
隻有一種場合不适用于Swing:
在使用SWT開發的程式上繼續編寫界面,比如為Eclipse 開發插件(因為Ecilpse 是基于SWT建構的)。SWT與Swing 不相容,他們不能混合使用。
(二)Swing 架構的基本結構
1、Swing 架構的繼承關系
2、Swing 的 MVC 結構
建立一個新的工程,名為TestMVC。在src 裡面 new 一個 (最後的other 的windowbuilder
的Swing
Designer 的JFrame 。名為Test )。會出現一些代碼,屬于底下的Source,旁邊的Design 即可設計。
MVC :Model View
Control 模型(存儲相關的資料)+視圖(表達視覺元素)+控制(負責他們之間的互相關系以及執行一些程式的邏輯和程式的真實走向)。
3、Swing的事件機制
(三)Swing基本元件
1、WindowBuilder 的安裝與簡介
2、窗體控件 JFrame 的使用
3、容器控件 JPanel 的使用
4、标簽控件 JLabel 的使用
5、按鈕控件 JButton 的使用
6、文本框控件 JTextField 與 JTextArea 的使用
JTextField :文本框,隻能輸入一行
JTextArea:文本區域,可輸入多行
7、單選與複選控件 JRadioButton 與 JCheckBox 的使用
單選在描寫代碼的時候,if語句要用else。而複選則應該用互相獨立的若幹個if
8、清單控件 JList 的使用
9、下拉菜單 JComboBox 的使用
10、進度條控件 JProgressBar 的使用
11、數字調節控件 JSpinner 的使用
12、Swing 界面元件的通用屬性
(四)Swing 布局管理器
1、Absolute Layout絕對布局
沒有任何限制,可以在視窗界面中任意擺置控件
2、Flow Layout浮動布局
可以浮動,但不是互相疊加。指大小在發生變化的時候,它們的相對位置可以改變。
3、Border Layout邊界布局
這是預設的布局。任意拖拽一個按鈕啊控件,即可顯示,如下:共5個邊界。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iZwIWY5IjYiRGZ0EWNiJTYyIGMhZ2M5MzM3ImMjJGM28CX0EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
4、Grid Layout網格布局
平均分!
5、Group Layout分組布局
是Swing 中最強大的布局管理器,非常靈活、動态,支援元素對齊、邊界吸附、控件的動态大小調整。
(五)自定義Swing元件
1、Swing 的繪圖機制·
2、Swing 繪圖 API
3、使用 Java2D 改善 API 的繪制效果
4、使用繪圖API自定義元件
5、為元件設定UI
6、使用 LookAndFeel 為界面更換皮膚
(六)Swing菜單的使用
1、界面菜單簡介
2、窗體菜單欄的建立與使用
建立一個JFrame。Design 、在左側選擇“menu”:裡面有~~~
JMenu 和 JMenuitem 的差別:前者包含後者,後者不可再分。
3、彈出菜單的建立與使用
4、為MacOSX系統優化菜單欄
(七)Swing界面響應與線程安全
1、主線程與UI線程簡介
(1)Java 程式的主線程
當Java 程式啟動時,一個線程立刻運作,該線程通常叫做程式的主線程(mainthread),因為它是程式開始時就執行的。一般來說,該類中會有一個main 函數,當程式啟動時,該函數就會第一個自動地得到執行,并成為程式的主線程。主線程的特征如下:
A、它是産生其他子線程的線程
B、主線程中執行程式的控制
C\、通常它必須最後完成執行,因為它執行各種關閉動作。
【永遠不在主線程中操作界面】
2、UI線程中非安全操作與安全操作
Swing API 的設計目标是強大、靈活和易用。但是Swing 元件不支援多線程通路,程式要操作或更改界面内容,必須向單一線程執行請求,我們把這個單一的線程稱為事件派發線程(可簡稱為UI線程)。這也就意味着Swing是線程不安全的,所有對于UI元素的修改都必須送出給UI線程執行,你不能在主線程或其他任何線程中直接操作UI的内容。
如果需要從UI線程或繪制代碼以外的地方通路UI,那麼你需要使用SwingUtilities;類的invokeLater() 或InvokeAndWait()方法。
如果你需要處理一些耗費大量計算能力或受I/O能力限制的工作,可以使用一個線程工具類如SwingWorker 或Timer。
3、使用Timer為界面執行異步任務
4、使用SwingWorker為界面執行異步任務
(八)界面消息提示
1、JoptionPane 簡介
2、使用 showConfirmDialog 顯示确認框
3、使用 showMessageDialog 顯示消息提示框
4、使用 showInputDialog 顯示輸入框
5、使用 showOptionDialog 顯示多項選擇框.
(九)Java檔案選擇器
1、JFileChooser簡介
2、使用檔案選擇器打開檔案
3、使用檔案選擇器儲存檔案
4、為檔案選擇器設定擴充名過濾
(十)Java視訊播放器的制作
1、工程的準備
2、工程建立與配置
3、制作主界面
4、制作視訊控制器
5、制作菜單欄