如何获得最大化JAP的最大化尺寸,JDesktopPane也最大化了。

时间:2013-12-14 17:23:14

标签: java netbeans jframe resolution jdesktoppane

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

获取桌面实际大小和设置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的pre-init代码中,我设置了“setExtendedState(JFrame.MAXIMIZED_BOTH);”

现在我在最大化模式下打开了两个,但是登录框架没有居中,因为它采用了分辨率为“[width = 1024,height = 768]”的居中逻辑。如果它需要我当前的屏幕分辨率,我认为它会集中精力。

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

1 个答案:

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