今天開始接觸到JAVAWINFORM的開發,之前老大已經搭了一個簡單的框架出來,讓我從SVN上面更新一個下來熟悉一下,於是,我就去了。
很熟悉,很親切的界面風格,WINFORM,能在這裡再與你相逢,真是“猿糞”啊。這次的相逢讓我想起了往事,在大一和大二的時候,當時曾在做課程設計的時候有做過VB和C#的WINFORM開發,眾所周知,微軟傻瓜式的IDE讓我們玩得不亦樂乎,於是也使WINFORM給我留下了美好的回憶,呵呵,於是,信心滿滿的我開始了JAVA SWING的探索之旅。
首先是軟件的登錄界面,我打開login.java一看,老大只是簡單地拖了兩個label和input,然後加了兩個按鈕,實現了一個登錄的方法,而這,對於一名致力於給用戶提供優越的用戶體驗的前端來說,一定是不能接受的,於是,我馬上開始了頁面的修整之旅。
首先,我運行了一下,第一個發現的問題是窗口標題左側的java logo很刺眼,那杯熱氣騰騰的咖啡作為窗體的icon看起來很不專業,有點不倫不類的感覺,於是,我第一個便拿它開刀:先換掉它!
怎樣換呢?陌生的IDE,陌生的領域,這個一時間也不知道怎麼搞,不過按照道理來說,這個應該在屬性頁是可以配置才對的,於是便用鼠標點了一下登錄框所在面板,畢竟要先讓IDE明確你的操作目標嘛,然後檢查了一下它的屬性頁,沒有發現想當然中近似的屬性,問題出了哪裡呢?嗯,可能是還沒有選擇到最上層的元素吧,於是,我盡量靠著窗體邊框來點,發現右側屬性頁顯示當前選中的控件是jframe,嗯,應該是這個了。再掃了一遍它的屬性,發現有兩個屬性是比較可疑的,iconImage和iconImages,按照單詞的意思,大概可以他們來達到我的目的吧。點了一下這兩個屬性對應的右側的編輯按鈕,彈出來一個相應的編輯框,編輯的文本框還被套在了一個叫setIconImage的方法裡面,很自然地,我將原打算作為圖標的圖片的url填了進去,然後保存,運行,沒有效果,哪裡出問題了呢?注意細節,再檢查了一下頁面,發現屬性編輯框的下面,標注著java.awt.image,我大膽推測,這個參數必須是是一個java.awt.image的實例,這個實例的構造方法是怎樣的呢?其實可以通過查API就能得到,但是,我偷懶了,直接上網查了一下,貌似有個網友說直接new一個java.awt.IconImage,參數用圖片的URL就可以了,嗯,這個看起來還有點靠譜,於是,馬上自己動手試了一下,還是那杯冒著熱氣的咖啡,又檢查了一遍,貌似這個iconImage也不符合要求,人家要求的是awt.image的實例噢,難道這個方法有問題嗎?於是,繼續上網,
求索良久,終於成功了,方法如下:
java.awt.Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/logo.png")),getImage方法要求的參數是絕對路徑的,但稍有頭腦的開發人員都應該知道,用絕對路徑是很危險的做法,也是很不靈活的做法,所以用getClass().getResource方法來過渡,這樣,就可以實現用相對路徑來定義窗體的圖標啦。
查看本欄目