如何调用setVisible在JDesktopPane中的中心的JInternalFrame?(Ho

2019-10-16 13:43发布

其实我想告诉JInternalFrame的在JDesktopPane中的中心,我用这个梅索德正如我在Jframes使用它,但它没有工作:

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

所以我问,如果有另一个梅索德这样我就可以在JdesktoPane中心显示的JInternalFrame。 谢谢

Answer 1:

一个javax.swing.JInternalFrame缺乏便捷setLocationRelativeTo(null)中发现的实施java.awt.Window ,但可以使用类似的方法。 只是减去从相应的中心内部框架的宽度和高度的一半桌面窗格的坐标。 使用新的坐标,在调用setLocation()

您还需要在必要时调整内部框架的尺寸。



Answer 2:

尝试是这样的:

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);


文章来源: How to setVisible a JinternalFrame in the center of the JdesktopPane?