在NetBeans中将JFrame设置为Screen的中心

时间:2013-04-04 13:09:56

标签: java swing jframe netbeans-7

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

从网上我明白我可以使用

setLocationRelativeTo(null);

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

我需要获得以下内容:

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

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

9 个答案:

答案 0 :(得分:18)

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

答案 1 :(得分:12)

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

public frame() {     
   initComponents();
}

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

你会得到这个:

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

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

答案 2 :(得分:3)

按照以下简单步骤操作:

  • 选择框架并转到属性。
  • 点击代码部分,然后点击复选框Generate Center。

那就是它。

答案 3 :(得分:2)

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

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

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

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

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

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

最后,有一个NetBeans错误226740在尝试集中GUI的某些方面时可能会导致问题。它可能不会影响你,但要注意它是有用的。

此致

德里克

答案 4 :(得分:1)

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

答案 5 :(得分:0)

从链接@DerekMannering发布:

  

Netbeans实际上是通过自己生成中心逻辑   属性使用,所以你不会看到setLocationRelativeTo选项。去吧   属性窗口中的“代码”选项卡。找到“表单大小策略”标签   在代码选项卡中。在下拉列表中选择“生成调整大小代码”。然后   确保选中标签为“Generate Center”的属性。   你也想确保检查“生成大小”。   应该默认,但你应该检查。现在,那会   最适合JFrame或Frame扩展。

答案 6 :(得分:0)

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

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

然后选择Generate Center Option。

答案 7 :(得分: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);
    }
    

答案 8 :(得分:0)

...试

    <configuration>
  <connectionStrings>
    <add name="F8CONNECTION" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostanme)(PORT=1111))(CONNECT_DATA=(SERVICE_NAME=db)));User Id=user;Password=pass" providerName="ORACLE" />
  </connectionStrings>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add name="Telerik_Web_UI_WebResource_axd" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" />
    </handlers>
  </system.webServer>
  <system.web>
    <customErrors mode="Off" />
    <compilation targetFramework="4.0" debug="true">
      <assemblies>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
    <httpRuntime requestValidationMode="2.0" />
    <pages validateRequest="false" />
    <authentication mode="Forms">
      <forms loginUrl="~/Login.aspx" timeout="2880" />
    </authentication>
    <authorization>
      <allow users="*" />
    </authorization>
    <membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <profile>
      <providers>
        <clear />
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
      </providers