java中的JFrame

JFrame a=new JFrame(); 
JFrame()
构造一个初始时不可见的新窗体。
JFrame(GraphicsConfiguration gc)
以屏幕设备的指定 GraphicsConfiguration 和空白标题创建一个 Frame。
JFrame(String title)
创建一个新的、初始不可见的、具有指定标题的 Frame。
JFrame(String title, GraphicsConfiguration gc)

创建一个具有指定标题和指定屏幕设备的 GraphicsConfiguration 的 JFrame。

不过这样是不够的,还要给他初始化一个大小,否则就算出来了也是很小的一行。

a.setSize(100,100);
但是我们要注意在设定框架的时候要注意退出框架时也要他退出应用程序。
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
最后只要他显示就可以了

a.setVisible(ture);

要是想添加一个 标签为ok'的组件,并添加到内容窗格上

a.getContentPane().add(new JButton("确定"));
但是这个只能添加一个组件,我想给他添加两个组件咋办?呢就要用到布局管理器程序来设定容器的布局规则。
a.getContentPane().setLayout(new FlowLayout());





<think>我们正在讨论的是Java Swing中的JFrame窗口居中显示问题。根据引用[1]提供了两种方法,我将分别解释并给出代码示例。 ### 方法一:使用`setLocationRelativeTo(null)` 这是最简单的方法,将窗口置于屏幕中央。注意:需要在设置窗口大小(如调用`setSize()`)之后调用此方法。 ```java import javax.swing.JFrame; public class CenterFrameExample1 { public static void main(String[] args) { JFrame frame = new JFrame("居中窗口"); frame.setSize(400, 300); // 设置窗口大小 // 将窗口设置为居中显示(相对于屏幕) frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ### 方法二:通过计算屏幕尺寸和窗口尺寸实现居中 这种方法先获取屏幕的尺寸,然后计算窗口左上角的坐标,使窗口位于屏幕中央。 ```java import javax.swing.JFrame; import java.awt.Dimension; import java.awt.Toolkit; public class CenterFrameExample2 { public static void main(String[] args) { JFrame frame = new JFrame("居中窗口"); frame.setSize(400, 300); // 设置窗口大小 // 获取屏幕尺寸 Toolkit toolkit = Toolkit.getDefaultToolkit(); Dimension screenSize = toolkit.getScreenSize(); int screenWidth = screenSize.width; int screenHeight = screenSize.height; // 计算窗口位置 int windowWidth = frame.getWidth(); int windowHeight = frame.getHeight(); int x = (screenWidth - windowWidth) / 2; int y = (screenHeight - windowHeight) / 2; // 设置窗口位置 frame.setLocation(x, y); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ### 注意事项: 1. 在方法一中,`setLocationRelativeTo(null)`必须在`setSize()`之后调用,否则可能无法正确居中。 2. 方法二同样需要在设置窗口大小后计算位置,然后再设置位置。 3. 如果窗口大小发生变化,方法二需要重新计算位置,而方法一在窗口大小改变后再次调用`setLocationRelativeTo(null)`可以重新居中。 ### 关于引用[2]的说明 引用[2]提到了窗口标题居中,但根据引用内容,它实际上描述的是Java语言的特性,并没有具体说明如何设置标题居中。在Swing中,JFrame的标题默认是居左显示的,如果要实现标题居中,需要自定义标题栏,这通常比较复杂,需要重写JFrame的标题栏绘制。但这不是用户当前问题的重点,用户的问题是如何让整个窗口居中显示。 ### 总结 推荐使用方法一,因为它简单且代码量少。方法二虽然更显式,但代码较长,且需要手动计算位置。 §§相关问题§§ 1. 如何让JDialog对话框居中显示? 2. 在Swing中如何实现窗口大小改变后重新居中? 3. 如何设置JFrame的标题居中显示?</think>### JavaJFrame 居中显示的两种方法 在 Java Swing 中实现窗口居中显示主要有以下两种常用方法,根据引用[1]提供的信息整理: #### 方法一:使用 `setLocationRelativeTo(null)`(推荐) ```java import javax.swing.JFrame; public class CenteredFrame { public static void main(String[] args) { JFrame frame = new JFrame("居中窗口"); frame.setSize(400, 300); // 设置窗口尺寸 // 关键代码:使窗口居中显示 frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` **特点**: 1. 最简单的方法,一行代码实现居中 2. 必须在 `setSize()` 或 `pack()` 之后调用 3. 适用于 JFrame 和 JDialog #### 方法二:通过计算屏幕尺寸实现居中 ```java import javax.swing.JFrame; import java.awt.Dimension; import java.awt.Toolkit; public class CenteredFrame { public static void main(String[] args) { JFrame frame = new JFrame("居中窗口"); frame.setSize(400, 300); // 设置窗口尺寸 // 获取屏幕尺寸 Toolkit toolkit = Toolkit.getDefaultToolkit(); Dimension screenSize = toolkit.getScreenSize(); int screenWidth = screenSize.width; int screenHeight = screenSize.height; // 计算居中位置 int windowWidth = frame.getWidth(); int windowHeight = frame.getHeight(); int x = (screenWidth - windowWidth) / 2; int y = (screenHeight - windowHeight) / 2; // 设置窗口位置 frame.setLocation(x, y); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` **特点**: 1. 精确控制窗口位置 2. 适用于需要特殊定位的场景 3. 可手动调整偏移量 ### 关键注意事项 1. **调用顺序**:`setLocationRelativeTo(null)` 必须在设置窗口大小之后调用(如 `setSize()` 或 `pack()`) 2. **多显示器支持**:两种方法都支持多显示器环境 3. **窗口标题居中**:如引用[2]所述,Swing 默认标题是左对齐的,需要自定义标题栏才能实现标题居中 ### 最佳实践建议 ```java // 推荐组合使用 frame.pack(); // 自动计算合适尺寸 frame.setLocationRelativeTo(null); // 居中显示 frame.setVisible(true); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值