java开发gui教程之jframe监听窗体大小变化事件和jframe创建窗体


在Java中,使用Swing库来创建图形用户界面(GUI)是非常常见的。下面我将提供一个简单的教程,包括如何使用JFrame来创建窗体,并监听窗体大小变化的事件。

### 1. 创建JFrame窗体

首先,你需要创建一个继承自JFrame的类,并在这个类中设置窗体的一些基本属性,如大小、关闭操作等。


import javax.swing.JFrame;

public class MyFrame extends JFrame {
    public MyFrame() {
        // 设置窗体标题
        setTitle("JFrame示例");
        // 设置窗体关闭操作,EXIT_ON_CLOSE表示窗体关闭时退出程序
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 设置窗体初始大小
        setSize(400, 300);
        // 设置窗体居中显示
        setLocationRelativeTo(null);

        // 这里可以添加其他组件
    }

    public static void main(String[] args) {
        // 在事件调度线程中创建和显示窗体
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                MyFrame frame = new MyFrame();
                frame.setVisible(true); // 显示窗体
            }
        });
    }
}

### 2. 监听窗体大小变化事件

要监听JFrame的大小变化事件,你需要给JFrame添加一个`ComponentListener`,并重写`componentResized`方法。


import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

// ...(MyFrame类中的其他部分保持不变)

public class MyFrame extends JFrame {
    // ...(MyFrame的构造函数和其他方法)

    // 添加一个ComponentListener来监听窗体大小变化
    public MyFrame() {
        // ...(之前的代码)

        addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                // 当窗体大小变化时,这个方法会被调用
                System.out.println("窗体大小已变化: 宽度 = " + getWidth() + ", 高度 = " + getHeight());
            }
        });
    }

    // ...(main方法和其他部分)
}

这样,每当用户调整窗体大小时,控制台就会输出当前窗体的宽度和高度。

以上就是一个简单的Java Swing GUI教程,关于如何使用JFrame创建窗体并监听窗体大小变化的事件。希望这能帮助到你!