【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式样的编程语言,真是很讽刺的一件事

 

posted @ 2015-01-11 13:45  Thermo  阅读(3685)  评论(0编辑  收藏  举报