Java中取消窗口最大化的方法

在Java应用程序中,有时候我们需要控制窗口的大小,包括其是否能够被最大化,以下是一些常见的方法来取消Java窗口的最大化功能。
使用Java Swing框架
Java Swing是Java的一个GUI工具包,用于创建桌面应用程序,以下是如何在Swing应用程序中取消窗口最大化的步骤:
1 创建一个窗口类
你需要创建一个继承自JFrame的类,并重写其setExtendedState方法。
import javax.swing.JFrame;
public class NonMaximizeFrame extends JFrame {
public NonMaximizeFrame() {
// 设置窗口标题
setTitle("Non-Maximize Window");
// 设置窗口大小
setSize(800, 600);
// 禁止窗口最大化
setExtendedState(JFrame.NORMAL);
// 设置窗口关闭操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口位置居中
setLocationRelativeTo(null);
}
public static void main(String[] args) {
// 创建并显示窗口
NonMaximizeFrame frame = new NonMaximizeFrame();
frame.setVisible(true);
}
}
2 运行程序
当你运行上述程序时,窗口将不会显示为最大化状态。

使用Java AWT框架
Java AWT是Java的一个更早的GUI工具包,虽然现在使用较少,但以下是如何在AWT应用程序中取消窗口最大化的步骤:
1 创建一个窗口类
类似于Swing,你需要创建一个继承自Frame的类,并重写其setExtendedState方法。
import java.awt.Frame;
public class NonMaximizeFrame extends Frame {
public NonMaximizeFrame() {
// 设置窗口标题
setTitle("Non-Maximize Window");
// 设置窗口大小
setSize(800, 600);
// 禁止窗口最大化
setExtendedState(Frame.NORMAL);
// 设置窗口关闭操作
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent windowEvent) {
System.exit(0);
}
});
// 设置窗口位置居中
setLocationRelativeTo(null);
}
public static void main(String[] args) {
// 创建并显示窗口
NonMaximizeFrame frame = new NonMaximizeFrame();
frame.setVisible(true);
}
}
2 运行程序
运行上述程序,窗口同样不会显示为最大化状态。
使用JavaFX框架
JavaFX是Java的下一个GUI工具包,它提供了更现代的UI组件和更好的性能,以下是如何在JavaFX应用程序中取消窗口最大化的步骤:

1 创建一个窗口类
在JavaFX中,你需要创建一个继承自Stage的类,并重写其setResizable方法。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class NonMaximizeStage extends Application {
@Override
public void start(Stage primaryStage) {
// 创建一个布局
StackPane root = new StackPane();
// 设置窗口标题
primaryStage.setTitle("Non-Maximize Window");
// 设置窗口大小
primaryStage.setScene(new Scene(root, 800, 600));
// 禁止窗口最大化
primaryStage.setResizable(false);
// 设置窗口关闭操作
primaryStage.setOnCloseRequest(event -> System.exit(0));
// 设置窗口位置居中
primaryStage.centerOnScreen();
// 显示窗口
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
2 运行程序
运行上述程序,JavaFX窗口同样不会显示为最大化状态。
通过上述方法,你可以轻松地在Java应用程序中取消窗口的最大化功能,选择最适合你应用程序的框架,并按照相应的步骤操作即可。


















