0

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

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

私人无效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]”的居中逻辑。如果它采用我当前的屏幕分辨率,我认为它将居中。

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

4

1 回答 1

0

它不会出现在应用程序屏幕的中心。

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 );
于 2013-12-14T17:29:23.943 回答