图形用户界面3要素:
- 放置组件的容器(例如窗体、对话框、中间容器)
- 在容器中的组件(按钮、文本框、菜单等)
- 事件监听处理机制
importjava.awt.*; importjava.awt.event.*; importjavax.swing.*; publicclassTestGUIextendsJFrameimplementsActionListener{ JButtonenglish=newJButton("English Title"); JButton中文=newJButton("中文标题"); TestGUI(){ setLayout(newFlowLayout()); add(english); add(中文); english.addActionListener(this); 中文.addActionListener(this); setLocation(100, 100); setSize(250, 150); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEventae) { if(ae.getSource() ==english) { this.setTitle("The first GUI"); } if(ae.getSource() ==中文){ this.setTitle("第一个图形界面"); } } publicstaticvoidmain(String[ ] args) { newTestGUI(); } }
java.awt包
基本组件包括
• Button、Label、TextField、TextArea、List、
Checkbox、Menu、MenuBar等
容器组件包括
• Frame、Dialog、Applet和Panel
java.awt包中的组件称为AWT组件
javax.swing包
- 这个包中提供了与java.awt包中几乎完全相对应的组件
- javax.swing包中的JButton类与java.awt包中的Button类相对应,JFrame类与Frame类相对应
- javax.swing包中的组件称为Swing组件
java.awt包和javax.swing包
- 开发javax.swing包的主要目的是为了程序的可移植性
- AWT组件类创建的对象在具体的机器上要有一个“对等体” 负责程序的运行,在不同机器上的程序会略有差别,占用资源多,并且复杂的用户界面程序难于调试
- Swing组件类取消了对等体,直接针对不同的系统解释执行字节码,使得程序消耗资源少,并且在不同机器上运行时几乎看不出界面的差别由于消耗资源的程度不同,把有对等体的AWT组件称为重组件,而没有对等体的Swing组件称为轻组件
- 在今后的编程过程中要尽量采用轻组件,尽量避免采用重组件