调整窗口大小时 Java AWT 小程序白屏
我有一个使用 awt 构建的 java 小程序。
我在面板对象上绘制一些文本,一切正常。 但是当调整窗口大小时,所有文本都会消失。
这种行为在不同的 jvm 和平台之间是不同的。
转向 swing 不是一个可行的选择,因为我们必须保持与 Microsoft JVM 的兼容性。
I have a java applet built using awt.
I draw some text on a panel object and everything goes fine.
but when resizing the windows all the text disappears.
this behaviour is different among different jvms and platforms.
moving to swing isn't a possible option, because we have to maintain compatiblty with Microsoft JVM.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您必须覆盖
update(Graphics g)
并在其中渲染文本。当需要重绘窗口时会调用该方法。You must override
update(Graphics g)
and render your text in there. This method will be called when the window needs to be redrawn.在没有看到您的代码的情况下,我们必须猜测,但是您的文本绘制是否有可能不是在
paint()
方法中完成的? 阅读本文,了解有关 AWT 绘画工作原理的详细信息。Without seeing your code, we have to guess, but is it possible that your text drawing is not being done in a
paint()
method? Read this for details on how AWT painting works.尝试附加一个 ComponentListener,然后从 componentResized() 中调用 Paint()。
类似于:
更新:您可能应该调用“repaint()”而不是直接调用paint()。
Try attaching a ComponentListener which then calls paint() from within componentResized().
Something like:
Update: you should probably call 'repaint()' rather than directly invoking paint().