我之前在这里问了同样的问题,但区别在于,在我之前的问题上,我只使用了JFrame,但在听取了Mad Programmer的建议之后,我切换到了JInternalFrame,但我遇到了同样的问题,或者是一个较小的问题可以这么说。
我的程序正在根据JInternalFrame的给定大小重新调整我的JFrame大小。但是在来回切换到每个内部框架之后,其中一个会变得混乱。请看下面的图片,看看我的意思。
这是我的代码,显示登录JInternalFrame(在'gui'类中)
loginframe.add(signIn,BorderLayout.CENTER);
dpane.add(loginframe);
try {
loginframe.setMaximum(true);
mainFrame.setSize(355, 220);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
//This frame handles the main system's interface.
mframe.getContentPane().add(opt1, BorderLayout.NORTH);
mframe.getContentPane().add(panel1, BorderLayout.CENTER);
mframe.getContentPane().add(list, BorderLayout.EAST);
mframe.setVisible(false);
dpane.add(mframe);
这是我的代码,显示了我的主要JInternalFrame(在不同的类中)
try {
gui.mframe.setMaximum(true);
gui.mframe.setSize(800, 500);
Dimension get = gui.mframe.getSize();
gui.mainFrame.setSize(get.width, get.height);
gui.mainFrame.setLocationRelativeTo(null);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
gui.mframe.setVisible(true);
gui.mframe.toFront();
gui.loginframe.setVisible(false);
这是从主JInternalFrame调用登录JInternalFrame的代码
try {
loginframe.setMaximum(true);
mainFrame.setSize(355, 220);
mainFrame.setLocationRelativeTo(null);
} catch (Exception ex) {
ex.printStackTrace();
}
loginframe.setVisible(true);
//loginframe.toFront();
mframe.setVisible(false);