在 NetBeans 中将 JFrame 设置为屏幕中心

问题描述 投票:0回答:10

我正在开发一个java swing桌面应用程序 使用 NetBeans,我想将 JFrame 设置到屏幕中央。

从网上我知道我可以使用

setLocationRelativeTo(null);

将框架设置到中心 但是我无法将代码插入 NetBeans IDE 因为

frame.pack()
frame.setVisible()
是 NetBeans 7 IDE 生成的代码 并且它不允许在两种方法之间插入任何代码。

我需要获得以下资料:

frame.pack() 
setLocationRelativeTo(null);
frame.setVisible()

关于如何解决问题有什么建议吗?

java swing jframe netbeans-7
10个回答
25
投票

属性 -> 代码 -> 检查生成中心


14
投票

在框架的构造函数中,你有这个:

public frame() {     
   initComponents();
}

你只需要输入这行:“this.setLocationRelativeTo(null);” 在“initComponents();”下

你会得到这个:

public frame() {     
   initComponents();
   this.setLocationRelativeTo(null);
}

运行它,框架应该显示在屏幕中央=)


3
投票

遵循以下简单步骤:

  • 选择框架并转到属性。
  • 单击代码部分并单击复选框生成中心。

就是这样。


2
投票

setVisible()
是在生成的代码上吗?奇怪的。无论如何,您可以右键单击
JFrame
中的
Navigator
并选择
Properties
。转到
Code
并选择它什么也不做。然后在
initComponents()
构造函数中的
JFrame
之后手动插入代码。


2
投票

我不确定您的问题是否得到了答案,但是 Wade Chandler 在 NetBeans 论坛上的以下链接中给出了解决方案。不幸的是,正在回答的查询的发起者至少可以说是不耐烦的,你必须克服一些焦虑才能得到答案。

http://forums.netbeans.org/ptopic37419.html

Wade 展示了如何使 GUI 居中以及您可以修改代码的哪些方面。

顺便说一句,如果你想将 GUI 放置在屏幕上的设定位置,那么你可以使用:

这也需要访问“属性”->“代码”窗口。 1. 确保选择框架(不是组件或外部!) 2. 转到 JFrame 属性窗口中的代码选项卡。 3. 找到“表单大小策略”标签。 4. 在下拉菜单中选择“生成调整大小代码”。 5. 通过点击旁边的“...”修改表格位置。 6. 此外,还要确保选中“Generate Size”。

如果你想将 GUI 放在屏幕的左上角,那么使用默认的 [0,0] 作为表单位置。要在第一个 GUI 旁边放置第二个 GUI,请使用 [450,0]。在这种情况下,x 值已更改为 450,Y 值保持为 0。要将 GUI 向下移动到屏幕,然后将 Y 值从 0 更改为 450。

最后,NetBeans 错误 226740 可能会导致在尝试将 GUI 的某些方面居中时出现问题。它可能不会影响您,但了解它很有用。

问候

德里克


0
投票

来自@DerekMannering 发布的链接:

Netbeans 实际上是自己生成居中逻辑而不是通过 属性使用,因此您不会看到 setLocationRelativeTo 选项。前往 属性窗口中的代码选项卡。找到“表单大小策略”标签 在代码选项卡中。在下拉菜单中选择“生成调整大小代码”。然后 确保选中标签为“生成中心”的属性。 你也需要确保“生成大小”也被选中。 应该是默认的,但你还是应该检查一下。现在,那将 最适合 JFrame 或 Frame 扩展。


0
投票

在 Netbeans Designer 区域中,选择您的 JFrame,转到代码。

在代码中,将 Form Size Policy 更改为“Generate Resize Code”

然后选择生成中心选项。


0
投票
  • 在构造函数中编写下面的代码将使您的 jframe 位于屏幕中央

    public ProjectWork_jframe() {
    initComponents();
    
    Dimension screenSize,frameSize;
    int x,y;
    screenSize=Toolkit.getDefaultToolkit().getScreenSize();
    frameSize=getSize();
    x=(screenSize.width-frameSize.width)/2;
    y=(screenSize.height-frameSize.height)/2;
    setLocation(x, y);
    }
    

0
投票

尝试....

public class_name{
     initComponents();
        setLocationRelativeTo(this);
}

0
投票

为了确保 jframe 位于 netbeans 的中心,请按照说明进行操作:

右键单击 jframe --> 属性 -->

现在打开: 生成中心选项 并确保 表单大小属性 --> 生成调整大小代码

© www.soinside.com 2019 - 2024. All rights reserved.