实际上我想在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。 谢谢
答案 0 :(得分: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);
答案 1 :(得分:5)
javax.swing.JInternalFrame
缺少setLocationRelativeTo(null)
中的方便java.awt.Window
实现,但您可以使用类似的方法。只需从桌面窗格的相应中心坐标中减去内部框架宽度和高度的一半。在setLocation()
的通话中使用新坐标。
如有必要,您还需要调整内部框架的尺寸。