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界面的無比乏味
當時個人機器配置較差,運行個applet都挺費勁,看着那呆板的方框,又丑又慢的緩緩擠上屏幕,一種厭惡感油然而生。。。
更重要的,學習java的基本語法,不應該采用這種GUI的教學方式!因為,這樣對於初學者,甚至對oop都沒有任何概念,一開始就會陷入一大堆不必要的知識點當中,比如類的繼承,GUI界面的事件消息響應機制,子類的方法覆蓋,一些跟GUI相關的特定對象到底是怎么回事,比如,這個可惡的Graphics g ,他奶奶的到底是啥東東尼???等等等等,真是非常的麻煩!
無非為了就是更加形象化那么一點,但卻極可能直接挫傷初入門者的積極性,搞的一頭霧水,更何況,那awt界面還丑的出奇,sun設計這種爛東西,簡直就是在侮辱java本身,結果沒過多久,awt就歐了。
事實證明,雖然Deitel后來也出了Swing版的java基礎教程(如這里推薦的),但他還是在java大學基礎教程第六版里,采取了其他java教材中管用的經典:
public static void main(String[] args){
System.out.println("Welcome to Java programming!");
}
並用起了命令行編譯運行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式樣的編程語言,真是很諷刺的一件事