我制作了一个JFrame,在JFrame中添加了一个JDesktopPane,然后在JDesktopPane中添加了一个JInternalFrame,JInternalFrame的初始大小和JDesktopPane一样。当 JFrame 最大化时,JDesktopPane 也会最大化,但 JInternalFrame 不会最大化。而我希望JFrame最大化时JInternalFrame也最大化,所以我为JFrame添加了一个WindowStateListener,当JFrame最大化时,我会调用JInternalFrame'setSize方法让JInternalFrame'大小和JDesktopPane一样,代码如下:
addWindowStateListener(new java.awt.event.WindowStateListener() {
public void windowStateChanged(java.awt.event.WindowEvent evt) {
jInternalFrame.setSize(jDesktopPane1.getWidth(),
jDesktopPane1.getHeight());
}
});
但它不起作用。但是当我点击最大化JFrame,然后我点击最小化JFrame,然后点击任务栏让JFrame可见,它确实有效。
为什么会这样?