9

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

从网上我知道我可以使用

setLocationRelativeTo(null);

将框架设置为中心但我无法将代码插入 NetBeans IDE,因为frame.pack()frame.setVisible()都是 NetBeans 7 IDE 的生成代码,并且不允许在两种方法之间插入任何代码。

我需要获得以下内容:

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

关于如何解决问题的任何建议?

4

9 回答 9

24

属性 -> 代码 -> 签出生成中心

于 2013-04-23T15:26:40.570 回答
14

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

public frame() {     
   initComponents();
}

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

你会得到这个:

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

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

于 2014-04-20T02:09:32.677 回答
3

请按照以下简单步骤操作:

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

就是这样。

于 2014-10-18T06:28:41.280 回答
2

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

于 2013-04-04T13:16:34.537 回答
2

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

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

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

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

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

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

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

问候

德里克

于 2013-04-10T13:56:38.343 回答
0

从@DerekMannering 发布的链接中:

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

于 2013-10-17T14:53:01.930 回答
0

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

在代码中,将表单大小策略更改为“生成调整大小代码”

然后选择生成中心选项。

于 2014-10-21T13:24:48.217 回答
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);
    }
    
于 2015-06-23T03:54:46.257 回答
0

尝试....

public class_name{
     initComponents();
        setLocationRelativeTo(this);
}
于 2016-08-08T08:26:34.267 回答