人呐,总是一如既往的懒,比如我。还是为开发环境的事情费神,这可能是我等初学者都必须要迈过去的坎吧!计划又变了,打算用eclipse3.5.2+中文包,谁叫自己不好好学习英文呢?但是一个月后必须换回英文版;学习内容近期以Swing为主。
我对Swing的理解:
1、他是以AWT为基础(建立在AWT之上的)的但比AWT更高级的组件的集合。
2、Swing包含250多个类,提供了40多个组件(是AWT组件的四倍)。除提供替代AWT重量组件的轻量组件外,Swing还提供了大量有助于开发图形用户界面的附加组件。
3、除模仿AWT组件所提供的功能外,几乎所有的Swing替代组件都有其他一些特性。
4、它是建立应用程序用户交互界面的必不可少的元素集合。
记住:使用Swing组件的小应用程序和应用程序应该分别扩展Swing的JApplet(java.applet.Applet的一个扩展)和JFrame(java.awt.Frame的一个扩展)。JApplet和JFrame除具有它们的超类所提供的功能外,还提供对Swing的支持。虽然可以分别使用Applet类和Frame类来实现Swing的小应用程序和应用程序,但是,这样很可能出现事件处理问题和重新绘制问题。因此,应当总是使用JApplet和JFrame来实现Swing的小应用程序和应用程序。
今天分别学习一个Swing小应用程序和一个Swing应用程序,同时也为熟悉eclipse的使用:
一、一个Swing小应用程序
二、一个java Swing 程序
以上代码在xp sp3+eclipse3.5.2下调试通过。
感觉:
1、Swing和AWT还是有较大区别的。AWT下允许在顶层容器(如Frame)中直接添加组件,但Swing原则上是不允许的,必须用Container mycontainer =getContentPane()方法来获得对其内容窗格的引用。
2、明白了public void windowClosing(WindowEvent e)与public void windowClosed(WindowEvent e)二者的区别,这两个事件在发生的时间和顺序上从字面就能理解。前者是关闭时发生,时间上居前;后者是关闭后发生,时间上居后。如果你二者都使用并在前者的事件中使用了System.exit(0)这样的语句,那么后者的事件代码将不会被执行。