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