我制作了一个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 可见时,它确实有效。
为什么会出现这样的情况?
最佳答案
您是否对包含 JInternalFrame、JDesktopPane 的容器调用重绘?如果没有,你应该这样做。
关于java - 为什么JInternalFrame的setSize不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8135890/