一門語言只要帶圖形庫就可以編程畫圖了,用JAVA畫圖有兩種方式,一是在內存中畫好然后生成圖片,就可以看到畫圖的效果了。另一個就是在窗口界面上直接畫,可以實時看到程序的運行效果。剛開始學編程的時候,我加入了一個JAVA編程的BBS,里邊有些大神會帶着新手學,有一次大神出一道,叫讓畫一個6邊型。
我想這不是很難吧,JAVA的圖形庫比較容易,有一個Graphics類,這個類在applet或者swing的某些方法中可以得到,Graphics提供畫線畫點畫多邊形的一些方法。不過當時我沒啥經驗,因為沒有網絡,沒有去查完整的Api文檔,我學的東西主要來源於書本,我只知道有個畫線的方法,於是就通過中學的幾何知識,分別計算了6個點的位置,再用線將這個6個點連起來,於是一個6邊形就畫出來了。
不過,我寫的程序被大神批了一通,說我這程序寫得不行。第一個我用的applet,沒有用swing庫,可能是信息閉塞,當時我也知道有swing這玩意,只是當時的IDE太笨重,我沒法安裝一個jbuilder去創建UI,手寫又覺得太麻煩,不像applet只要少量的代碼插入到瀏覽器即可運行。只是applet基於awt庫的,樣式相較Swing的扁平效果,確實丑了一點。但我覺得,用swing還是awt,目標不是畫多邊形么,為什么這個成為噴點了。
另一個就是我沒有用drawPolygon(int[] xPoints, int[] yPoints, int nPoints)這個方法,大神覺得我自己去畫6條線,是多此一舉,他覺得如果可以動態調整頂點數,我這程序就不行了。這一點我認了,確實是自己不知道這個方法,多寫了幾行代碼,但實際上,頂點還是算出來的,我只是多了幾行畫線的代碼,如果之前的需求有提出來,我弄個鏈表存儲頂點,然后通過迭代把線畫出來也不是多么困難的事情。
還有一點,就是我的程序僅僅畫了一個圖。我想應該是這個大神有點完美主義,只是畫一個圖,但他想要的卻是一個完整可發布的應用程序,比如某兄弟,寫了個6邊形的程序,他上邊加了幾個控件,可以調節頂點數,半徑長度,自適應窗口寬度等等。沒辦法,我學的程序基本上都是Console下邊運行的,參加這個活動,我只是為了證明一下,這種基於UI的程序,我也是可以寫的,但人家不認你也沒辦法。
后來,我一直工作到現在,也沒開發過JAVA寫的UI程序,如果是窗口程序,用響應更快的本地代碼編寫不是更好,反正Windows下邊,最終都是調用GDI的接口。如果不想用C++,可以用Delphi,VB之類更簡單的編程語言來實現。在我學JAVA的時候,.net 也剛剛出來。由於Windows比較普及,我也就以.net開發為主了。winform滿足了開發窗口程序的大部分需求。所以用JAVA開發就比較小眾了。當然也可能是見識的問題,以前的嵌入設備很多都是用JAVA的,不過那是JSME了,不是咱學習的范疇。