java - 为什么JInternalFrame的setSize不起作用

标签 java swing jinternalframe jdesktoppane

我制作了一个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/

相关文章:

java - 为什么我在用 Java 读取文本文件时会循环?

java - 每次更改窗口大小时,标签位置都会发生变化

java - SNMP4J:如何通过团体字符串限制接收的陷阱或至少知道陷阱的团体字符串?

java - 在 swing 中关闭父窗口

java - JAXB : How to manipuulate the Data during Unmarshalling process

java - 使用 JFormattedTextField(NumberFormat.getIntegerInstance()) 时出错;

java - 如何使用 Java Swing 制作可扩展列表

java - 为单独的对象设置动画

java - 使用 JInternalFrame 在客户端/服务器应用程序中创建聊天窗口

java - 如何让 JInternalFrame 填充容器并禁用拖动功能?