四、多媒體界面設計
1、主界面設計
首先,對JVideoPlayerFrame這個(gè)系統的主界面進(jìn)行界面設計。
雙擊圖中的JVideoPlayerFrame.java圖標,在JBuilder 9的IDE開(kāi)發(fā)環(huán)境中選擇 Design標簽,進(jìn)入主界面的設計器,在此將完成主界面的界面設計。界面設計器如圖5所示。
注意,JVideoPlayerFrame類(lèi)(即主界面類(lèi))用this關(guān)鍵字來(lái)指代,UI目錄包含了所有的可視化部件。這里設置主界面窗口的title屬性為“ Java媒體播放器”,resizable屬性設置為False,即在程序運行時(shí)不能改變主界面窗口的大小,并且注冊windowsClosing事件監聽(tīng)器this windowClosing(WindowEvent e)和windowsClosed事件監聽(tīng)器this windowClosed(WindowEvent e),以在主界面窗口關(guān)閉時(shí)執行相應的程序代碼。在this下面則包含了主界面中所有的UI控件:contentPane,jLabel1,jPanelVideo。在Menu目錄下則包含了主界面的菜單欄和相應的菜單項。通過(guò)UI和Menu目錄的層次,可以清楚地看到下面各個(gè)部件之間的相互關(guān)系。
下面來(lái)看看如何設計UI和Menu。
1)contentPane“容器”設計
JBuilder9已經(jīng)為主界面添加了一個(gè)JPanel類(lèi)的對象contentPane,它是用來(lái)放置其他控件的“容器”,將“容器”contentPane的layout屬性設置為BorderLayout。
狀態(tài)欄設計
向主界面添加一個(gè)JLabel類(lèi)的對象作為主界面的狀態(tài)欄。 在Swing控件庫中選擇JLabel拖放到contentPane上,然后設置該JLabel類(lèi)對象的屬性以滿(mǎn)足要求。
在JBuilder9的IDE開(kāi)發(fā)環(huán)境的屬性設計器中,設置該JLabel類(lèi)對象的名稱(chēng)為jLabell(name屬性);constraints屬性為South,即該狀態(tài)欄在contentPane中的位置在最下端;opaque屬性為T(mén)rue,即該狀態(tài)欄是不透明的:text屬性為“歡迎使用Java 視頻播放系統copyright@2004”,即該狀態(tài)欄顯示的文本信息;toolTipText屬性為“狀態(tài)欄”,即鼠標移動(dòng)到該狀態(tài)欄上時(shí)的提示信息。其他的屬性保持默認狀態(tài)。如下圖6所示。
視頻播放窗口設計
JMF播放器對象有兩個(gè)部件:視覺(jué)部件,用戶(hù)選擇的媒體文件將在視覺(jué)部件中播放;控制面板部件,用于控制媒體文件的播放進(jìn)度、媒體文件回放和聲音的開(kāi)關(guān)等。
首先要向contentPane容器中添加一個(gè)JPanel類(lèi)的對象jPanelVideo,JMF播放器的視覺(jué)部件和控制面板部件就放置在jPanelVideo對象中,然后再將jPanelVideo對象放置在contentPane容器中。
從Swing containers控件庫中選擇JPanel拖放到comemPane中,并且設置它的屬性。name屬性為jPanelVideo;constraints屬性為Center,即jPanelVideo在comemPane的中央:layout屬性為BorderLayout;opaque屬性為T(mén)rue,即不透明:toolTipText屬性為“視頻窗口”,即鼠標移動(dòng)到該控件上時(shí)顯示的提示信息。其他屬性保持默認狀態(tài)。
2)菜單欄設計
在JBuilder9中設計菜單是非常方便的。
在創(chuàng )建應用程序時(shí)選擇了Generate menubar,JBuilder9會(huì )自動(dòng)生成菜單欄jMenuBar1,我們要做的就是在菜單欄中添加相應的菜單和菜單項。
在jMenuBar1中依次添加“文件”菜單----jMenuFile、“播放”菜單----jMenuPlay、“幫助”菜單----jMenuHelp,然后在“文件”菜單中依次添加“打開(kāi)”菜單項----jMenuFile open、“退出”菜單項----jMenuFile exit,在“播放”菜單中添加帶檢查框的“循環(huán)播放”菜單項----jCheckBoxMenultem_loop,在“幫助”菜單中添加“關(guān)于”菜單項----jMenuHelp_about。如圖7所示。
接下來(lái),在屬性設計器的Events標簽頁(yè)中添加每個(gè)菜單項的動(dòng)作事件,以觸發(fā)相應事件。對于“打開(kāi)”菜單項,注冊jMenuFile_open_actionPerformed(actionEvent e)監聽(tīng)器;對于“退出”菜單項,注冊jMenuFile_exit_actionPerformed(actionEvent e)監聽(tīng)器;對于“循環(huán)播放”菜單項,注冊CheckBoxMenultem_loop_actionPerformed(actionEvent e)監聽(tīng)器;對于“關(guān)于”菜單項,注冊jMenuHelp_about_actionPerformed(actionEvent e)監聽(tīng)器。
至此,主界面就設計完成了。下面要對JVideoPlayerFrame AboutBox這個(gè)系統的輔助界面進(jìn)行設計。
2、輔助界面設計
輔助界面中的“容器”對象是Panel類(lèi)的對象panel1,它的layout屬性為BorderLayout;在這個(gè)“容器”對象中還放置了4個(gè)Panel類(lèi)的對象,它們分別是insetsPanel1,Panel2,insetsPanel2和insetsPanel3。insetsPanel的layout屬性為FlowLayout,“確定”按鈕就放置在其中;panel2的layout屬性為BorderLayout,insetsPanel2和insetsPanel3就放置在其中;insetsPanel2的layout屬性為FlowLayout,ImageLabel類(lèi)的對象就放置在其中,它是一個(gè)圖標標簽:insetsPanel3的layout屬性為GridLayout,3個(gè)Label類(lèi)的對象label1,label2和label3就放置在其中,這3個(gè)標簽向用戶(hù)顯示了公司和版本信息。