1 // Java大學簡明教程 Deitel 著 簡單易懂,詳細講Swing圖形界面開發 2 3 package first; 4 5 import java.awt.*; 6 import javax.swing.*; 7 8 9 public class WelcomeSwing extends JFrame 10 { 11 private JLabel textJLabel; 12 //private JLabel pictureJLabel; 13 14 public WelcomeSwing() 15 { 16 createUserInterface(); 17 } 18 19 private void createUserInterface() 20 { 21 Container contentPane = getContentPane(); 22 contentPane.setBackground(Color.YELLOW); 23 contentPane.setLayout(null); 24 25 textJLabel = new JLabel(); 26 textJLabel.setText("Welcome to Java Programming!"); 27 textJLabel.setLocation(35,0); 28 textJLabel.setSize(550,88); 29 textJLabel.setFont(new Font("SanSerif",Font.PLAIN,36)); 30 contentPane.add(textJLabel); 31 32 //pictureJLabel = new JLabel(); 33 //pictureJLabel.setIcon(new ImageIcon()); 34 35 setTitle("WelcomeSwing"); 36 setSize(608,413); 37 setVisible(true); 38 }// end mothod createUserInterface 39 40 public static void main(String[] args) 41 { 42 WelcomeSwing application = new WelcomeSwing(); 43 application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 44 }// end method main 45 46 }
學習Swing,這本書恐怕是最淺顯易懂的,這是Deitel一向的風格,經過Swing界面來學習Java的基本語法和一些API
當初買Java大學教程(2003版),裏面的GUI是awt,是JDK1.0的例子,裏面applet的action方法目前已徹底過期
在JDK1.8上,裏面的例子有的還能夠運行出來,但文本框輸入數據後回車,界面已沒法響應回車的事件消息
那是一本通俗易懂的好書,惋惜已沒什麼溫習的效用了,65塊錢!
重溫一下awt,這是第一支學習的Java程序呦
1 // A first program in Java 2 package first; 3 import java.applet.Applet; 4 import java.awt.Graphics; 5 6 public class Wellcom extends Applet{ 7 public void paint(Graphics g){ 8 g.drawString("Welcome to Java programing!", 5, 50); 9 g.drawString("Welcome to Java programing!", 5, 100); 10 } 11 }
誠實的說,Deitel的書是好書,但這本他寫的Java大學教程(2003.4版),使用awt,當年卻讓我這個兩眼一抹黑的菜菜,深感java作GUI界面的無比乏味java
當時我的機器配置較差,運行個applet都挺費勁,看着那呆板的方框,又醜又慢的緩緩擠上屏幕,一種厭惡感油然而生。。。編程
更重要的,學習java的基本語法,不該該採用這種GUI的教學方式!由於,這樣對於初學者,甚至對oop都沒有任何概念,一開始就會陷入一大堆沒必要要的知識點當中,好比類的繼承,GUI界面的事件消息響應機制,子類的方法覆蓋,一些跟GUI相關的特定對象究竟是怎麼回事,好比,這個可惡的Graphics g ,他奶奶的究竟是啥東東尼???等等等等,真是很是的麻煩!app
無非爲了就是更加形象化那麼一點,但卻很可能直接挫傷初入門者的積極性,搞的一頭霧水,更況且,那awt界面還醜的出奇,sun設計這種爛東西,簡直就是在侮辱java自己,結果沒過多久,awt就歐了。eclipse
事實證實,雖然Deitel後來也出了Swing版的java基礎教程(如這裏推薦的),但他仍是在java大學基礎教程第六版裏,採起了其餘java教材中管用的經典:編程語言
public static void main(String[] args){oop
System.out.println("Welcome to Java programming!");學習
}spa
並用起了命令行編譯運行java程序的教學方式命令行
這種轉變說明了什麼?設計
這說明了,10年前,是一個無比浮躁的時代,是一個沉迷於GUI界面至上的時代,那個時代沒,VB,Delphi滿天飛,一個視GUI能使教學更簡單更方便的時代,這,絕對是錯誤的
時光飛梭,10多年後的今天,在配置極其通常的機器上,swing界面均可以跑的很流暢,當用eclipse打開上面的那個程序時,彈出一個亮麗的歡迎界面,這纔是當年夢想中的java,或許當時我不知道有swing,也或者swing根本不能達到如今的流暢,無論怎麼說,一個awt式的語法教程,讓我和Java擦肩而過。。。
幸虧,在鬼使神差的從一個久遠的目錄中,點擊到eclipse的圖標後,一切翻天覆地,大大的不一樣了,這,纔是我想要的Java!
警告:徹底沒有GUI,oop的概念的初學者,若是從練習寫GUI界面代碼的方式來學習java基本語法,你將會誤入歧途。初學者,強烈建議遠離GUI編程的學習
GUI最能體現oop思想中最複雜的部分,對於徹底不懂oop的初學者,卻用GUI編程來接引他們進入oop式樣的編程語言,真是很諷刺的一件事