1 //Java大学简明教程 Deitel 著 简单易懂,详细讲Swing图形界面开发
2
3 packagefirst;4
5 import java.awt.*;6 import javax.swing.*;7
8
9 public class WelcomeSwing extendsJFrame10 {11 privateJLabel textJLabel;12 //private JLabel pictureJLabel;
13
14 publicWelcomeSwing()15 {16 createUserInterface();17 }18
19 private voidcreateUserInterface()20 {21 Container contentPane =getContentPane();22 contentPane.setBackground(Color.YELLOW);23 contentPane.setLayout(null);24
25 textJLabel = newJLabel();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 voidmain(String[] args)41 {42 WelcomeSwing application = newWelcomeSwing();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 packagefirst;3 importjava.applet.Applet;4 importjava.awt.Graphics;5
6 public class Wellcom extendsApplet{7 public voidpaint(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式样的编程语言,真是很讽刺的一件事