1

実際、JDesktopPaneの中央にJinternalFrameを表示したいのですが、Jframesで使用しているので、このメソッドを使用しましたが、機能しませんでした。

Extraction ex=new Extraction();//Extraction is the name of the JintenalFrame jDesktopPane1.add(ex); ex.setLocationRelativeTo(this); ex.setVisible(true);

そこで、JdesktoPaneの中央にJinternalFrameを表示できるように、別の方法があるかどうかを尋ねています。ありがとうございました

4

2 に答える 2

7

次のようなものを試してください:

JDesktopPane mainPanel;
JInternalFrame jif_test = new JInternalFrame();

public void centerJIF(JInternalFrame jif) {
    Dimension desktopSize = mainPanel.getSize();
    Dimension jInternalFrameSize = jif.getSize();
    int width = (desktopSize.width - jInternalFrameSize.width) / 2;
    int height = (desktopSize.height - jInternalFrameSize.height) / 2;
    jif.setLocation(width, height);
    jif.setVisible(true);
}

centerJIF(jif_test);
于 2012-10-31T10:08:02.720 に答える
5

Ajavax.swing.JInternalFrameには、 にある便利なsetLocationRelativeTo(null)実装java.awt.Windowがありませんが、同様の方法を使用できます。デスクトップ ペインの対応する中心座標から、内部フレームの幅と高さの半分を差し引くだけです。への呼び出しで新しい座標を使用しますsetLocation()

必要に応じて、内部フレームの寸法も調整する必要があります。

于 2012-04-06T19:05:41.243 に答える