【GUI開發】Swing的一本極好的入門教材


 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式樣的編程語言,真是很諷刺的一件事

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM