目录
概述
Swing是GUI (图形界面) 开发工具包,包含很多内容,这里会介绍Swing中的基本要素,如容器、组键、以及布局
一、常用窗体
JFrame框架窗体
JFrame窗体是一个容器,它是Swing程序中各个组件的载体。语法如下:
JFrame jf = new JFrame(title)
当然,在开发中更常用的方式是通过继承java.swing.JFrame类创建一个窗体,可通过this关键字调用其方法。
而在JFrame对象创建完成后,需要调用getContentPane()方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器,通常这个容器用来包含和显示组件。如果需要将组件添加至容器,可以使用来自Container类的add()方法进行设置。
至于JPanel容器会在后面提到。
代码实列使用继承java.swing.JFrame类创建一个JFrame对象:
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class JFrameDemo extends JFrame{
public JFrameDemo(){ //重写构造
super("JFrameDemo "); //调用父类构造,传入窗体名称
this.setSize(500,500); //设置窗体宽高
this.setVisible(true); //设置窗体显示
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JFrameDemo(); //创建JFRameDemo对象
}
}
运行结果如下:
这就是一个500*500的窗体,用的是setSize()方法;
标题为"这是一个JFrameDemo";
窗体可视setVisible()方法中的参数为"true"或者"false",默认为false,如果不设置的话窗体不可见
窗体关闭方式为"EXIT_ON_CLOSE",常用的窗体关闭方式有四种,分别为“DO_NOTHING_ON_CLOSE”、“DISPOSE_ON_CLOSE”、“HIDE_ON_CLOSE”、“EXIT_ON_CLOSE”。第一种表示什么也不做就将窗体关闭;第二种表示任何注册监听程序对象后会自动隐藏并释放窗体;第三种表示隐藏窗口的默认窗口关闭;第四种表示退出应用程序默认窗口关闭。
JDialog窗体
JDialog窗体,它的功能是从一个窗体中弹出另一个窗体。
代码实例:
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
public class JDialogDemo extends JDialog { // 继承JDialog类
public static void main(String[] args) {
new JDialogDemo();
}
public JDialogDemo() {
super(new MyJFrame(), "这是一个JDialog窗体", true); // 实例化一个JDialog类窗体,参数为:其父窗体(new MyJFrame调用构造初始化父窗体)、JDialog窗口标题和类型
Container container = this.getContentPane(); //将JDialogDemo对象转换为容器
container.add(new JLabel("JLabel组件")); //添加一个JLabel组件
this.setSize(500, 500); //指定JDialog窗体大小
//因为没有调用setVisible(true),所以JDialog默认不显示,
//而后在MyJFrame的构造中new一个JDialog并调用setVisible显示;
}
}
class MyJFrame extends JFrame { //继承JFrame类
public MyJFrame() { //MyJFrame构造
this.setVisible(true); //设置是否显示
this.setSize(700, 500); //设置大小
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //设置关闭方式
Container container = this.getContentPane(); //转换为容器
container.setLayout(null); //设置布局方式
JButton jb = new JButton("点击弹出对话框"); // 新建一个按钮
jb.setBounds(30, 30, 200, 50); // 设置按钮位置及大小
jb.addActionListener(new ActionListener() { // 给按钮添加监听器,用于监听点击事件
@Override
public void actionPerformed(ActionEvent e) {
new JDialogDemo().setVisible(true); //按钮点击事件,创建一个JDialogDemo窗体,并显示
}
});
container.add(jb);
}
}
效果如下: