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 回答