Java Swing 是 Java 语言中用于创建图形用户界面(GUI)的库,它允许开发者轻松地创建窗口、按钮、菜单等组件。在本指南中,我们将探讨如何设置 Java 窗体的大小,以及如何处理窗体大小的变化。
窗体大小设置
1. 初始化窗体大小
在创建一个窗体时,可以通过 Frame 类的构造函数来设置其初始大小。例如:
import javax.swing.JFrame;
public class MyFrame extends JFrame {
public MyFrame() {
// 设置窗体的初始大小为 800x600 像素
setSize(800, 600);
// 设置窗体不可变大小,即用户不能通过拖动窗体角来改变大小
setResizable(false);
// 设置窗体的标题
setTitle("我的窗体");
// 设置窗体可见
setVisible(true);
}
public static void main(String[] args) {
// 在事件分发线程中创建并运行窗体
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MyFrame();
}
});
}
}
2. 动态调整窗体大小
如果你想要在运行时调整窗体的大小,可以使用 pack(), setExtendedState(), setBounds() 等方法。
pack()方法会根据窗体中组件的大小自动调整窗体的大小。setExtendedState(int state)方法允许你设置窗体的扩展状态,如最小化、最大化等。setBounds(int x, int y, int width, int height)方法允许你设置窗体的位置和大小。
例如:
import javax.swing.JFrame;
public class MyFrame extends JFrame {
public MyFrame() {
setSize(800, 600);
setResizable(false);
setTitle("我的窗体");
setVisible(true);
}
public void changeSize() {
// 调整窗体大小为 500x400 像素
setSize(500, 400);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
MyFrame frame = new MyFrame();
// 1 秒后调用 changeSize 方法
new java.util.Timer().schedule(new java.util.TimerTask() {
public void run() {
frame.changeSize();
}
}, 1000);
}
});
}
}
窗体大小变化处理
1. 窗体大小变化事件
当窗体大小发生变化时,可以注册一个 ComponentAdapter 实例来监听 ComponentEvent 事件。
import javax.swing.event.ComponentAdapter;
import javax.swing.event.ComponentEvent;
public class MyFrame extends JFrame {
public MyFrame() {
setSize(800, 600);
setResizable(false);
setTitle("我的窗体");
setVisible(true);
// 注册组件适配器,监听窗体大小变化事件
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
// 窗体大小发生变化时执行的操作
System.out.println("窗体大小变化:宽:" + getWidth() + " 像素,高:" + getHeight() + " 像素");
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MyFrame();
}
});
}
}
2. 获取窗体大小
你可以使用 getWidth() 和 getHeight() 方法来获取窗体的当前宽度和高度。
System.out.println("窗体的宽度:" + getWidth());
System.out.println("窗体的高度:" + getHeight());
通过以上内容,你将了解到如何在 Java Swing 中设置窗体大小,以及如何处理窗体大小的变化。希望这个指南对你有所帮助。
