咖啡屋 - Java 技術(shù)研究
Java 技術(shù)研究
摘要: 經(jīng)過(guò)jungleford幾個(gè)月業(yè)余時(shí)間的設(shè)計(jì)、編碼、加工和文檔化之后,時(shí)鐘和日歷的可視化組件庫(kù)SmartCalendar終于發(fā)布到了sourceforge上,這是本人做的第一個(gè)(估計(jì)也可能是最后一個(gè))比較正規(guī)化的軟件,雖然目前規(guī)模很小,但個(gè)人覺(jué)得還是比較有意義的:某種程度上為JDK沒(méi)有GUI日歷組件的問(wèn)題提供了一種可選的解決方案——當(dāng)你在用JFileChooser或JColorChooser的時(shí)候,或許會(huì)納悶怎么沒(méi)有日期選擇框呢?當(dāng)然,這個(gè)工作早已有人做了,我的想法只是提高它的可重用性和規(guī)范化一些;鍛煉了一些建模能力,理解了一些設(shè)計(jì)模式的思想;熟悉了一些軟件設(shè)計(jì)規(guī)范化和文檔化的過(guò)程;當(dāng)然,嘿嘿,也鍛煉了一把英語(yǔ)作文。 閱讀全文
摘要: 開(kāi)始做模擬時(shí)鐘的bean了,看dW上Java 2D的那個(gè)例子很有意思,比JDK自帶的applet要簡(jiǎn)單,因?yàn)橛玫搅朔律渥儞Q(Affine Transformation),只用簡(jiǎn)單得多的運(yùn)算就可以繪制較高質(zhì)量的動(dòng)畫(huà)。乘SUN的JavaDoc中文化之東風(fēng),先把java.awt.geom.AffineTransform的API doc之一部分簡(jiǎn)單翻譯一下,只涉及到一點(diǎn)幾何和線性代數(shù)的小常識(shí) 閱讀全文
摘要: 可能有不少初學(xué)者會(huì)有這樣的困惑(以前我也有過(guò)):在你的代碼里調(diào)用了一些資源文件,如圖片,音樂(lè)等,在調(diào)試環(huán)境或單獨(dú)運(yùn)行的時(shí)候可以正常顯示或播放,而一旦打包到j(luò)ar文件中,這些東東就再也出不來(lái)了,除非把這個(gè)jar放到原來(lái)未打包以前的目錄下,但通常jar是單獨(dú)發(fā)布的。這里介紹一個(gè)解決這類問(wèn)題的方法。 閱讀全文
摘要: 如果你是一個(gè)MSN的多年用戶,是否會(huì)有這樣的煩惱:可能你在好幾個(gè)不同的地方上網(wǎng)(家中、學(xué)校、公司、使用筆記本移動(dòng)等等),在每個(gè)地方的機(jī)器上都保留一套MSN聊天記錄,一段時(shí)間后也許你就要離開(kāi)某個(gè)地方了(譬如畢業(yè)),但又想保存那臺(tái)機(jī)器上的聊天記錄,怎么辦?一般是把“C:\Documents and Settings\<你的機(jī)器帳號(hào)>\My Documents\我接收到的文件\<你的MSN帳號(hào)再加上一串?dāng)?shù)字>\歷史記錄”文件夾拷貝一份備份著,這樣時(shí)間一長(zhǎng),你可能就有好幾個(gè)這樣的“歷史記錄”,在MSN Messenger里查看得到的只是你當(dāng)前機(jī)器上的那部分記錄,如果想要看其它記錄,只好手動(dòng)打開(kāi)那些拷貝過(guò)來(lái)的XML文件了。 閱讀全文
摘要: 去年做的一個(gè)尚未成型的郵件客戶端 閱讀全文
摘要: PushbackInputStream和PushbackReader是Java I/O系統(tǒng)里兩個(gè)比較讓人迷惑的類,我以前對(duì)它(們)就不太了解,直到某一天看了以前水母Java版的牛人zms的評(píng)論和一些資料以后才有所獲益。這是幾個(gè)月以前的事情了,這幾天寫(xiě)有關(guān)序列化的總結(jié)時(shí)才想到這也不失為一個(gè)好的話題。 閱讀全文
摘要: 已經(jīng)有一個(gè)多月沒(méi)有搭理blog了,原因很多,譬如實(shí)驗(yàn)室的項(xiàng)目正在收工,巨忙;譬如找工作及其相關(guān)的事情;而且二月份大部分時(shí)間是陪老爹老媽,家里撥號(hào)的速度可想而知……但主要還是沒(méi)有找到一個(gè)合適的topic,或者說(shuō)這段時(shí)間懶了(臨畢業(yè)前期綜合癥),凈在看《漢武大帝》和歷史方面的書(shū),還有其它亂七八糟的閑書(shū),就是沒(méi)有認(rèn)真地玩Java,哈哈!現(xiàn)在工作差不多落實(shí)了,好在不算太爛,小資青年jungleford的生活又開(kāi)始步入正軌了!以上是新年里的一些廢話。 今天稍微聊一點(diǎn)關(guān)于“程序狀態(tài)保存”方面的問(wèn)題,我們很容易就會(huì)想到“序列化”(Serialization,有的書(shū)上又翻譯為“順序化”或者“串行化”,但“串行”一詞總是讓我聯(lián)想到通信和硬件接口,所以我更習(xí)慣于“序列化”的叫法,何況這種叫法是有來(lái)頭的,后面我會(huì)談到這個(gè)名稱的由來(lái)),當(dāng)然,序列化是一種方便有效的數(shù)據(jù)存取方式,但它還有更加廣泛的應(yīng)用。廣義上講,就是討論一下I/O的一些應(yīng)用。 閱讀全文
摘要: 用慣了VC的人剛接觸Java大概很不習(xí)慣代碼的調(diào)試,的確,在M$的大部分IDE都做得相當(dāng)出色,包括像VJ++這樣一直被Java程序員稱為是“垃圾”的類庫(kù)(記得以前在瀚海星云的Java版提有關(guān)VJ問(wèn)題的人是有可能被封的,^_^),它的開(kāi)發(fā)工具在調(diào)試上都相當(dāng)容易。Java也有命令行方式的調(diào)試和IDE的調(diào)試,但現(xiàn)在的像JB這樣的玩意又是個(gè)龐然大物,低配置的機(jī)器可能就是個(gè)奢望,不像VC那樣。怎么辦呢,高手們說(shuō),“我的jdb用得賊熟練”,那我會(huì)報(bào)以景仰的目光,像我這樣的菜鳥(niǎo)基本上就沒(méi)使過(guò)jdb,還是老老實(shí)實(shí)在代碼里面System.out.println(...)。直到1996年一個(gè)叫做“歐洲安全電子市場(chǎng)”(E.U. SEMPER)的項(xiàng)目啟動(dòng),“調(diào)試”不再是一件“體力活”,而是一種軟件設(shè)計(jì)的藝術(shù),這個(gè)項(xiàng)目組開(kāi)發(fā)的日志管理接口后來(lái)成為Apache Jakarta項(xiàng)目中的一員,它就是現(xiàn)在我們所熟悉的log4j。下面的文字將概要介紹與Java日志記錄相關(guān)的一些技術(shù),目的不是讓您放棄老土的System.out.println(...),而是說(shuō),在Java的世界里可以有許多種選擇,你今天覺(jué)得掌握了一件高級(jí)武 閱讀全文
摘要: 對(duì)于Java集合框架(Java Collections Framework,JCF),Java玩家大概都不會(huì)陌生,在C++里面相似的概念是標(biāo)準(zhǔn)模板庫(kù)(Standard Template Library,STL),主要是對(duì)一些數(shù)據(jù)結(jié)構(gòu)和相關(guān)算法的封裝??紤]到這是一個(gè)Java初學(xué)者將會(huì)經(jīng)常接觸的工具,所以有了以下的一些文字。主要是參考了IBM developerWorks上的一篇教程,它可能解釋得更加清晰,這里算是濃縮了一下吧,真正的來(lái)龍去脈可以看看JDK文檔里的“The Collections Framework”,說(shuō)明更為詳細(xì)。 閱讀全文
摘要: 以前做一個(gè)界面的時(shí)候常常會(huì)遇到這樣的尷尬情況:希望保留各個(gè)獨(dú)立的組件(類),但又希望它們之間能夠相互通信。譬如Windows中的Explorer,我們希望鼠標(biāo)點(diǎn)擊左邊是樹(shù)型目錄的一個(gè)節(jié)點(diǎn),右邊的文件瀏覽能及時(shí)列出該節(jié)點(diǎn)目錄下的文件和子目錄,如果由于某種原因我們不想把這些組件統(tǒng)統(tǒng)放到一個(gè)類里面,應(yīng)該怎么辦呢? 閱讀全文
摘要: 這是大約3、4年前剛開(kāi)始學(xué)Java的時(shí)候?qū)懙囊粋€(gè)小玩意 閱讀全文
摘要: 這是以前寫(xiě)的一點(diǎn)書(shū)評(píng) 閱讀全文