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[幅=1024,高さ=768] jInternalFrameSize:java.awt.Dimension[幅=398,高さ=286]"

解像度は 1024x768 です。JDesktopPane の pre-init コードで、「setExtendedState (JFrame.MAXIMIZED_BOTH);」を設定しました。

両方を最大化モードで開くようになりましたが、解像度「[width=1024,height=768]」のセンタリング ロジックを使用するため、ログイン フレームは中央に配置されません。現在の画面解像度を使用すると、中央に配置されると思います。

私はそれを明確にしたことを願っています。どこが間違っているのですか?

4

1 に答える 1