gpt4 book ai didi

java - JPanel自定义画图

转载 作者:行者123 更新时间:2023-11-30 09:38:42 25 4
gpt4 key购买 nike

我在绘制 JPanel 时遇到问题。它绘制正确,但是当我调整父容器的大小时,JPanel 被绘制在窗口的左上角以及正确的位置。

JPanel 有一个自定义的绘制方法,它绘制一组不属于任何 JPanel(包括它)的组件。它们在调用其 paint 方法之前立即添加到 JPanel,并在调用之后立即删除:

  paintOnto.setIgnoreRepaint(true);
paintOnto.add(getPaintableComponent());
getPaintableComponent().paint(g);
paintOnto.remove(getPaintableComponent());
paintOnto.setIgnoreRepaint(false);

paintOnto 是对 JPanel 的引用,getPaintableComponent() 返回要绘制的 JComponent。 g 是从 JPanel paint 方法传递过来的 Graphics 对象。

在 mac 中根本不需要添加/删除代码,但在没有它的 windows 下,组件根本不会绘制。

此问题仅存在于 windows 和 ubuntu 中,不存在于 mac 中。其他系统未经测试。

知道是什么原因造成的吗?每当绘制 JPanel 时,我都会检查它的位置,但它永远不会位于左上角。

谢谢

最佳答案

尝试将之前图形AffineTransform保存下来,绘制完成后恢复。

关于java - JPanel自定义画图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10008842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com