版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40788630/article/details/82353786
相对于AWT而言Swing包中提供了更多的丰富的、快捷的、强大的GUI组件,而且这些组件都是java语言编写而成,因此Swing不依赖本地平台,可以真正做到跨平台运行。通常而言我们把AWT称之为重量级组件,Swing称之为轻量级软件,一般而言Swing组件都是在AWT组件名称前加J,但是需要注意的是JFrame、JWindow、JDialog都是需要依赖本地平台的,所以他们是重量级组件
JFrame
在Swing组件中最常见的就是JFrame,他和Frame一样是一个独立存在的顶级窗口,不能放置在其他容器中,JFrame支持所有窗口的操作,例如窗口最小化,设定窗口大小。
接下来代码为例:
import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*;
public class Main extends JFrame{
public Main(){
this.setTitle("JFrameTest");
this.setSize(200,300);
//定义一个按钮
JButton bt =new JButton("按钮");
this.setLayout(new FlowLayout());
this.add(bt);
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Main.this.dispose();
}
});
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args)throws Exception{
new Main();
}
}
在上例中实现了一个窗体,并在窗体中添加了一个按钮,从程序代码中我们会发现JFrame和Frame最大的区别是不需要添加窗体监听器,只需调用setDefaultCloseOperation()函数就开已实现窗口关闭功能。简单可以得出一个小结论就是JFrame更为简洁