我有一个使用 awt 构建的 java 小程序。
我在面板对象上绘制了一些文本,一切正常。但是当调整窗口大小时,所有文本都会消失。
这种行为在不同的 jvm 和平台之间是不同的。
转向摇摆是不可能的选择,因为我们必须保持与 Microsoft JVM 的兼容性。
您必须在其中覆盖update(Graphics g)
并呈现您的文本。当需要重绘窗口时会调用该方法。
没有看到您的代码,我们不得不猜测,但是您的文本绘制是否有可能没有在paint()
方法中完成?有关 AWT 绘画如何工作的详细信息,请阅读此内容。
尝试附加一个 ComponentListener,然后从 componentResized() 中调用paint()。
就像是:
class MyPanel extents Panel implements ComponentListner {
public MyPanel() {
addComponentListener(this);
}
public void componentResized(ComponentEvent e) {
paint(getGraphics());
}
}
更新:您可能应该调用“repaint()”而不是直接调用paint()。