gpt4 book ai didi

java - 如何在 Canvas 上绘制 JPanel?

转载 作者:行者123 更新时间:2023-12-01 16:08:46 25 4
gpt4 key购买 nike

是否可以在 Graphics(或 Graphics2D)对象的特定位置绘制 JPanel?我重写了 Canvas 的绘制方法,并在那里调用 panel.paint(g),但它并没有按照我希望的方式工作。

@Override
public void paint(Graphics g){
Dimension size = panel.getPreferredSize();
panel.setBounds(pos.x, pos.y, size.width, size.height);
panel.paint(g);
}

尺寸对象已按照我的意愿正确定义,所以这不是问题。此外,pos 包含屏幕上正确的 x 和 y。

最佳答案

您可能应该使用paintComponent而不是paint ,因为后者是AWT方法,而前者是Swing方法。

关于 Swing 的一件好事 paintComponentGraphics通过实际上总是 Graphics2D ,这样您就可以:

Graphics2D g = (Graphics2D)lg;

现在您可以使用 getTransform保存旧的变换,然后修改 Graphics2D 的变换使用 setTranformscale , translaterotate方法。不要忘记恢复旧的转换,否则您可能会伪造该上下文绘制的下一个内容。

关于java - 如何在 Canvas 上绘制 JPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1979892/

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