Swing组件
Swing概述
GUI(图形用户界面)。Swing是java 1.0中的基础类AWT(抽象窗口工具箱)的增强组件。
Swing特点
原来的AWT组件来自java.awt包,当用其中的组件时,在不同的平台上执行时,显示的GUI组件会有所不同。但使用Swing组件,可以真正实现跨平台,可以指定同一的外观和风格。
- 轻量级组件: 不依赖操作系统的组件,如:Swing。
- 重量级组件: 依赖本地平台的组件,如:AWT。组件依赖本地平台的窗口系统。
Swing包
下列是swing包的层级和继承关系。
Swing组件中很多都是Component类的子类或者间接子类,JComponent类是Swing组件各种特性的存放位置。
在Swing组件中最重要的父类就是Container类,而它有两个最重要的子类,java.awt.Window和java.awt.Frame(两个类都是容器)。
常用窗体
JFrame窗体
JFrame窗体是一个容器,它是Swing组件的载体。也只有容器才能存放组件
JFrame继承图:
JFrame常用构造方法:
- public JFrame():无名窗体。
- public JFrame(String title):指定标题的窗体。使用思路
JFrame使用思路:
- 继承或实例一个JFrame窗体。
JFrame jf = new JFrame("test");
- 将JFrame窗体转为容器。
Container c = jf.getContentPane();
- 添加组件至JFrame容器
JButton jb = new JButton("按钮");
c.add(jb);
//移除组件
c.remove(jb);
- 窗体设置
//窗体可视化
jf.setVisible(true);
//窗体位置
jf.setBounds(0,0,100,100);
//窗体默认关闭方式
jf.setSetDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JFrame示例
JDialog窗体
JDialog窗体是Swing组件中的对话框,实质上是另一种类型的窗体,使用时也需要getConentPane()方法转换为容器。
JDialog继承图:
JDialog常用构造方法
- public JDialog(): 创建一个没有标题和父窗体的对话框。
- public JDialog(Frame f):创建一个只有标题的对话框。
- public JDialog(Frame f,String s):创建一个有标题和父窗体的对话框。
- public JDialog(Frame f,boolean model):创建一个指定类型的对话框,并指明父窗体。
- public JDialog(Frame f,String s,boolean model):创建一个指定类型、有标题、有父窗体的对话框。
JDialog使用思路
- 新建一个父窗体。
public class MyJFrame extends JFrame{
public MyJFrame(){
JFrame jf = new JFrame();//这个类务必属于Frame的子类。
}
}
- 新建一个JDialog窗体。
class MyJDialog{
public MyJDialog(Frame frame){
JDialog jd = new JDialog(frame);//指定父窗体
jd.setVisible(true);
}
}
- 给父窗体添加按钮组件,按钮的单击事件实例化JDialog窗体。
JButton jb = new JButton("对话框");
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new MyJDialog(MyJFrame.this);
}
});
JDialog示例
常用组件
JLabel标签
显示文本或提示信息,支持文本字符串和图标。