1.为了支持图形用户界面程序设计,java1.0的标准类库中包含一个抽象窗口工具箱(Abstract Window Toolkit,AWT).
这个工具箱极不成熟,其编程模型也不是面向对象的,有很大的局限性.为此,java1.2最终决定放弃AWT中的GUI,而是添加了一个Swing库.
Swing组件不仅可以完全替代AWT组件,而且提供了更多的复杂组件.
必须注意GUI程序设计是,不能混用AWT组件和Swing组件(例如不能将javax.swing.JList添加到java.awt.Frame中).所用Swing组件的类名以字母J开头,以区别AWT组件.
注意:Swing是基于AWT架构之上的,它没有完全替代AWT.
创建框架:
1 importjava.awt.Container;2
3 importjavax.swing.JButton;4 importjavax.swing.JFrame;5
6 public classFrameDmo {7 public static voidmain(String[] args) {8 JFrame frame = new JFrame("测试JFrame");9 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//框架关闭时结束运行10 frame.setSize(500, 300);//设置框架大小11 frame.setVisible(true);//显示框架12 }13 }
setDefaultCloseOperation()告诉程序关闭当前框架时应该做什么.JFrame.Exit_ON_CLOSE就是告诉程序关闭程序是结束运行.否则关闭框架后,程序没有结束运行.
创建框架后,就可以添加组件了
1 importjava.awt.Container;2
3 importjavax.swing.JButton;4 importjavax.swing.JFrame;5
6 public classFrameDmo {7 public static voidmain(String[] args) {8 JFrame frame = new JFrame("测试JFrame");9 JButton button=new JButton("按钮");10 //取得框架的内容窗格
11 Container container=frame.getContentPane();12 //将框架添加到框架的内容窗格中
13 container.add(button);14 //框架关闭时结束运行
15 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);16 //设置框架大小
17 frame.setSize(500, 300);18 //显示框架
19 frame.setVisible(true);20 }21 }
java SE5之前,如果要将某个组件添加到框架中,必须首先调用类JFrame中的getContentPane取得框架的内容窗格,
然后通过该内容窗格调用方法add将组件添加到内容窗格中.例如上面的例子.
内容窗格委托.
1 importjavax.swing.JButton;2 importjavax.swing.JFrame;3
4 public class FrameWithButton1 extendsJFrame {5 publicFrameWithButton1(){6 JButton button=new JButton("按钮");7 add(button);//javaSE5之后采用
8 }9 public static voidmain(String[] args) {10 FrameWithButton1 frame=newFrameWithButton1();11 frame.setTitle("将一个按钮添加到框架中");12 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);13 frame.setSize(500,300);14 frame.setVisible(true);15 }16 }
需要将组件添加到其内容窗格的容器有JFrame,JDialog,JApplet,JInternalFrame,jWindow.