当用户更改小程序窗口大小时,真正发生了啥?

Posted

技术标签:

【中文标题】当用户更改小程序窗口大小时,真正发生了啥?【英文标题】:What is really happening when the applet window size is changed by the user?当用户更改小程序窗口大小时,真正发生了什么? 【发布时间】:2015-01-04 16:11:41 【问题描述】:

每当我在小程序中拖动以更改窗口大小时,paint 方法似乎会再次运行。到底发生了什么?油漆方法只是重新运行本身吗?有没有办法让它自动执行此操作(不更改窗口大小)? for 循环似乎不起作用。我在代码中有一个 thread.sleep 方法,但它仍然没有帮助。我将在下面包含paint方法的代码。

// -----------------------------------------------------------------
// Paints the stick figures on the applet.
// -----------------------------------------------------------------
public void paint(Graphics page) 
    // for (int f = 0; f < 6; f++) 

    resize(400, 150);
    for (int u = 0; u < stickdudes.length; u++)
        stickdudes[u].draw(page);

    // Delay.sleep(3000);
    // 

【问题讨论】:

你问的是调用paint还是如何实现? 我知道如何调用和实现它。我想知道如何再次自动运行它。 你可以使用repaint()方法再次调用paint方法:) 感谢@Muhammad!把这个作为答案,这样我就可以相信你了。 谢谢,很高兴为您解决问题 【参考方案1】:

要一次又一次调用paint() 方法,repaint() 方法在 AWT 和 Swing 中都使用

【讨论】:

【参考方案2】:

来自Painint in AWT and Swing: AWT Painting Guidelines,

程序可能会通过调用repaint() 来触发对paint() 的未来调用,但不应直接调用paint()

【讨论】:

以上是关于当用户更改小程序窗口大小时,真正发生了啥?的主要内容,如果未能解决你的问题,请参考以下文章

自动布局:窗口调整大小时如何更改框架的原点?

父级大小更改时如何更改子窗口小部件的大小?

使用多任务处理时视图大小发生变化时如何设置通知 |迅速

如何在窗口更改时动态调整applet组件的大小?

更改 Flutter 桌面应用程序窗口大小

当 Extjs 中的窗口大小发生变化时如何显示“分页工具栏”?