freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的圖形用戶界面設(shè)計(編輯修改稿)

2024-12-13 22:00 本頁面
 

【文章內(nèi)容簡介】 ③圖像瀏覽區(qū) ①操作區(qū) ④圖像窗口 8 面的外觀風(fēng)格的切換,只能有一種外觀風(fēng)格被選擇,因此使用 JRadioButtonMenuItem 和ButtonGroup。 操作區(qū)內(nèi)另有工具欄, 使用 JToolBar,為了讓工具欄能更好地被拖出和放回原位,而不影響界面的布局,使用自定義的類 JToolBarPanel,該類是 JPanel 的子類,并實現(xiàn)了ContainerListener 接口,當(dāng)容器內(nèi)容因為有某一組件被加入或刪除而發(fā)生改變時,該監(jiān)聽器的相關(guān)方法將被觸發(fā),以調(diào)整布局。 在工具欄上,用戶能通過按鈕完成常用的操作。為了使用戶界面更加整潔,美觀,使用了由 JButton 擴展來的自定義類 JFancyButton,該類實現(xiàn)的按鈕,不僅具有其父類的可以設(shè)置一般狀態(tài)、鼠標(biāo)經(jīng)過狀態(tài)、鼠標(biāo)點擊狀態(tài)的不同圖標(biāo), 還去掉了普通按鈕具有的邊框。 主界面除操作區(qū)的以下部分,為了使界面更加靈活,使用了 JSplitPane,這樣樹形查看區(qū)就可以被收起,用戶就有更大的圖像瀏覽區(qū)。 樹形區(qū)域使用自定義類 TreeExplorer, 為了在樹中只列出 gif、 jpg、 png格式的文件,使 用自定 義類 ImageFilter(實 現(xiàn)接口 )。圖 像瀏覽 區(qū)使用JDesktopPane,在其實例的最底層加入了 JLabel的一個只帶圖標(biāo)的對象,作為圖像瀏覽區(qū)的背景。 圖像窗口由 JInternalFrame 擴展的自定 義類 JImageFrame 實現(xiàn)。因為該窗口是用來打開圖像文件的,所以此自定義類中用到了 JScrollPane、 File、 Image。 另外,打開文件的對話框使用了 JFileChooser,為了在選擇文件中只顯示 gif、 jpg、png格式的文件,使用了 demo/jfc下 FileChooserDemo中的 ExampleFileFilter( 繼承于 )?!瓣P(guān) 于”對話 框的彈出 直接用()方法完成。 圖5標(biāo)明了以上所提組件在界面上的位置安排: 9 圖5 圖形界面詳細(xì)布局安排(主類 JImageViewer 所使用組件) (四) 主要模塊功能及實現(xiàn) 實現(xiàn)這個程序,共定義了9個類(不計內(nèi)部類)。它們分別是 : 主類 JImageViewer、JToolBarPanel、 JFancyButton、 JSplashWindow、 ExampleFileFilter、 TreeExplorer、JImageFrame、 ImageFilter 和 ExampleFileFilter。其中 ExampleFileFilter 是從 JDK 中demo/jfc/FileChooserDemo 的源 文件 中借用 的, JToolBarPanel 則借 鑒于 JDK 中demo/jfc/swingset2 中的 中定義的 ToolBarPanel 類。它們之間的關(guān)系如圖6所示: 圖6 各模塊關(guān)系圖 說明 :上圖中 A B 表示 類 A 使用類 B 其中主要模塊的功能及實現(xiàn)介紹如下(詳細(xì)代碼實現(xiàn)請見附錄): 1 . JImageViewer 建立用戶界面外觀, 使用監(jiān)聽器 LnFListener 響應(yīng)用戶對界面外觀的選擇,實現(xiàn)ActionListener 接口,對“退出”、“關(guān)于”操作作出響應(yīng)。另外,其中定義了內(nèi)部類OpenListener、 CloseallListener、 TitleActionListener、 BrowseListener、 ScaleListener,它們都實現(xiàn)了 ActionListener,分別處理“打開”(文件)、“關(guān)閉所有圖像窗口”、“平鋪窗口”、“前后翻頁”和“放大縮小”的命令。 2 . JImageFrame 顯示圖像,繼承 JInternalFrame,其結(jié)構(gòu)如下: 屬性: Image image。 //當(dāng)前圖像 File file。 //當(dāng)前圖像文件 JScrollPane jsp。 //滾動窗,當(dāng)圖像過大時,可以滾動滾動條來查看 JImageViewer JToolBarPanel JFancyButton JImageFrame JSplashWindow TreeExplorer ExampleFileFilter ImageFilter LnFListener JPanel JMenuBar JToolBarPanel JToolBar JFancyButton JSplitPane TreeExplorer JLabel JDesktopPane JImageFrame 說明 :邊框色與所用組件對應(yīng)如下(粗體表示標(biāo)準(zhǔn)組件 ,粗斜體表示擴展的組件) 10 JLabel jlab。 //只含圖標(biāo),顯示圖片 方法: public void setImage(File f) //更新當(dāng)前圖片為圖片文件 f public File getImage() //得到當(dāng)前圖片,并返回 public void scaleImage(double p) //按照參數(shù) p的比例更改圖片大小 public void reLoad() //重新加載當(dāng)前圖片文件 3 . TreeExplorer 一個瀏覽面板,以樹的形式瀏覽磁盤上的圖像文件,繼承 JScrollPane。 其中定義了4個內(nèi)部類: ①F ileNode:定義文件節(jié)點類。包含了一個 File成員對象,所有操作都是圍繞著這個 File對象來進行的。其中的主要方法 expand(),是對節(jié)點展開,獲取子節(jié)點的具體實現(xiàn)。 ② MyRenderer: 繼承 TreeCellRenderer ( 渲 染 器 接 口 ) 的 默 認(rèn) 實 現(xiàn) 類DefaultTreeCellRenderer。對樹中節(jié)點的圖標(biāo)進行了設(shè)置,不同狀態(tài)的節(jié)點使用不同的圖標(biāo),同時增加了 tooltip支持。 ③ MyExpansionListener:節(jié)點展開事件監(jiān)聽器,實現(xiàn) TreeExpansionListener。對節(jié)點展開事件進行了處理,因為展開節(jié)點,獲取節(jié)點信息時,處理的時可能會比較長,為了不讓界面的操作凍結(jié),其中使用了線程。 ④ MySelectionListener:選擇事件監(jiān)聽器,實現(xiàn) TreeSelectionListener。當(dāng)樹中節(jié)點被選中時,觸發(fā)選擇事件,將當(dāng)前路徑的文件,賦給屬性 currentfile,以便將當(dāng)前樹中選中的文件傳遞給其它類。 4 . JFancyButton 無邊框按鈕,接收用戶命令,觸發(fā)監(jiān)聽器,繼承 JButton。 通過以下三條語句去掉按鈕邊框: setBorderPainted(false)。 setBorder(new EmptyBorder(new Insets(0,0,0,0)))。 setContentAreaFilled(false)。 5 . LnFListener 對外觀進行設(shè)置,實現(xiàn) ActionListener 接口,使用以下語句: (lnfName)。 (frame)。 五 程序運行情況說明 程序能正常運行,能完成即定的功能需求。 程序執(zhí)行后,歡迎屏幕如圖7;進入主界面,打開三幅圖像后,進行“平鋪”操作的效果如圖8。圖8是在 JavaMetal 風(fēng)格下,點擊 Face 菜單中的選項可切換到 Windows 或 Mac OS的外觀風(fēng)格。界面中 對功能鍵都給出了相應(yīng)的提示和快捷鍵。程序在使用“樹”獲取磁盤文 11 件信息時,運行有點慢,應(yīng)該是由于 Java 是解釋型語言所致。另外,前后翻頁的功能在代碼實現(xiàn)上方法不太好,導(dǎo)致結(jié)果不是很穩(wěn)定,不過還是能夠達到按序瀏覽某文件夾內(nèi)所有圖像的效果,這個文件夾是當(dāng)前得到焦點的圖像窗口中所顯示的圖像文件所在的文件夾。 圖7 歡迎屏幕 圖8 Metal 風(fēng)格下的界面(平鋪了三個圖像窗口) 六 小結(jié) 本 次 畢業(yè)設(shè)計, 討論了圖形用戶界面設(shè)計的重要性,如何用 Java Swing 設(shè)計一個良好的圖形用戶界面,并 成功 實現(xiàn)了一個圖像瀏 覽器 。 這個圖像瀏覽器 運行良好,能打開 gif、jpg、 png 格式的文件,完成前一張、后一張、放大、縮小等操作。 由于自己水平有限,這個圖像瀏覽器功能比較簡單,還有許多地方需要完善。如對于樹 12 的選擇事件,如果當(dāng)用戶打開其中某一文件夾節(jié)點時,在右邊的圖像瀏覽區(qū)能夠顯示出該文件夾內(nèi)的所有圖像的縮略圖,雙擊縮略圖,就能打開圖像。這樣會更方便用戶對文件的選擇。另外,打開文件的對話框,最好也能有預(yù)覽的功能。既然是圖像瀏覽器,最好還附帶一些對圖像的處理功能。 致謝 參考文獻 [1]印旻 . Java語言與面向?qū)ο蟪绦蛟O(shè)計.北 京:清華大學(xué)出版社, 2020. 183~ 184 [2]Marc Loy, Robert Eckstein, Dave Wood 等. Java Swing(第二版 ).北京:清華大學(xué)出版社, 2020. 1~ 682 [3]邵榮. Java編程實踐指南.北京:清華大學(xué)出版社, 2020. 90~ 120 [4]Kenh F. Krutsch, David S. Cargo, Virginia Howlett. Java用戶界面編程指南.北京:電子工業(yè)出版社, 2020. 10~ 30 [5]James Hobart.出色圖形用戶界面(GU I)設(shè)計規(guī)范. 2020 [6]張晨,付冰,趙軍等. Java2應(yīng)用編程 150例.北京:電子工業(yè)出版社, 2020. 9~ 11 [7]張洪斌. Java程序設(shè)計白事通.北京:清華大學(xué)出版社, 2020. 205~ 322 [8]唐大仕. Java程序設(shè)計.北京:北方交通大學(xué)出版社, 2020. 295~ 303 [9]譚浩強. Java編程技術(shù).北京:人民郵電出版社, 2020. 183~ 185 [10]Rogers Cadenhead, Laura Lemay. 21天學(xué)通 Java2(第三 版).北京:人民郵電出版社,2020. 440~ 447 [11]nkoffe.分享 Swing 學(xué)習(xí)的一些經(jīng)驗. 2020 附錄 主要部分源代碼如下: // import .*。 import .*。 import .*。 import .*。 import .*。 public class JImageViewer extends JFrame implements ActionListener{ JPanel toppane。 JDesktopPane desktop。 JLabel backgr。 JSplitPane jsp。 TreeExplorer treeEx。 int internalX。 13 int internalY。 public JImageViewer(){ //構(gòu)造函數(shù) super(Vision)。 ImageIcon icon=new ImageIcon(images/)。 setIconImage(())。 Container contentPane=getContentPane()。 //JFrame 內(nèi)容窗格 //======================menu======================
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1