栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JFrame高度最大化时,程序未重绘

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JFrame高度最大化时,程序未重绘

它似乎是Windows的Java实现中的错误。(我也在使用Windows 7和JDK7。)

当Windows决定更改窗口的高度时

COMPONENT_MOVED
,Window会收到一个事件,但不会
COMPONENT_RESIZED
收到任何事件。

在Windows类内部,非公共方法

dispatchEventImpl()
COMPONENT_RESIZED
通过调用
invalidate()
和来响应事件
validate()
,但它将忽略
COMPONENT_MOVED
事件。

这是使窗口在发生此类事件后重新验证自身的蛮力方法。这可能在其他情况下偶尔使窗口重新验证,但不是很常见,因为Window类本身在每个

COMPONENT_RESIZED
事件之后都在进行重新验证,并且所报告的错误仅在用户正在主动调整窗口大小时发生。

    masterWindow.addComponentListener(new ComponentAdapter() {      private int oldWidth = 0;      private int oldHeight = 0;      @Override      public void componentResized(ComponentEvent e) {        oldWidth = masterWindow.getWidth();        oldHeight = masterWindow.getHeight();      }      @Override      public void componentMoved(ComponentEvent e) {          if (masterWindow.getWidth() != oldWidth || masterWindow.getHeight() != oldHeight) { masterWindow.invalidate(); masterWindow.validate();          }          oldWidth = masterWindow.getWidth();          oldHeight = masterWindow.getHeight();      }    });


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号