【问题标题】:How to get the maximised size of the Jframe which has the JDesktopPane also maximized.?如何使 JDesktopPane 也最大化的 Jframe 的大小最大化。?
【发布时间】:2014-01-02 09:03:21
【问题描述】:

我在启动应用程序时显示“登录内部框架”。但问题是它没有显示在应用程序屏幕的中心。

我获取桌面实际大小和JInternalFrame设置位置的代码如下

private void new_init() {

  LoginInternal login = new LoginInternal(jMenuBar1); 
  Dimension desktopSize = this.getSize();
  Dimension jInternalFrameSize = login.getSize();
  System.out.println("desktopSize: "+desktopSize+" jInternalFrameSize:" +jInternalFrameSize );
  jMenuBar1.setVisible(false);
  login.setLocation((desktopSize.width - jInternalFrameSize.width)/2,(desktopSize.height- jInternalFrameSize.height)/2);
  jDesktopPane1.add(login); 
  login.show();
}

我的屏幕分辨率是 1366x768。 但根据我放的印刷品

"desktopSize: java.awt.Dimension[width=1024,height=768] jInternalFrameSize:java.awt.Dimension[width=398,height=286]"

我得到的分辨率是 1024x768。 在 JDesktopPane 的预初始化代码中,我设置了“setExtendedState (JFrame.MAXIMIZED_BOTH);”

现在我将两者都以最大化模式打开,但登录框架没有居中,因为它采用分辨率为“[width=1024,height=768]”的居中逻辑。如果它采用我当前的屏幕分辨率,我认为它会居中。

我希望我说清楚了。我哪里出错了?

【问题讨论】:

    标签: java netbeans jframe resolution jdesktoppane


    【解决方案1】:

    它没有出现在应用程序屏幕的中心。

    LoginInternal login = new LoginInternal(jMenuBar1); 
    Dimension desktopSize = this.getSize();
    Dimension jInternalFrameSize = login.getSize();
    

    组件创建时的默认大小为 (0, 0)。无法判断您的构造函数代码是否设置了大小。

    我在启动应用程序时显示“登录内部框架”。

    出于这个原因,不要使用 JInternalFrame。使用模态 JDialog。基本代码是:

    JDialog dialog = new JDialog(...);
    dialog.add(...);
    dialog.pack();
    dialog.setLocationRelativeTo( null );
    dialog.setVisible( true );
    

    【讨论】:

    • 谢谢,但现在我在整个应用程序中都使用了 JInternalFrame,现在很难更改。反正有现有的代码吗?
    • Is there anyway with the existing code? - 我不知道您现有的代码是什么样的。我提出了我认为的问题所在。您需要在所有组件都具有有效尺寸后计算位置。所以你需要在计算之前给你的内部框架一个尺寸。
    • 内部框架的尺寸为 "jInternalFrameSize:java.awt.Dimension[width=398,height=286]" 问题是 this.getSize() -> 将尺寸设为 1024x768 但我的实际分辨率为 1366x768,这就是居中出错的原因
    • @user3066876,发布您的SSCCE 来说明问题。
    猜你喜欢
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多