首页  >  文章  >  Java  >  如何在 JPanel 中绘制持久矩形:避免重绘时消失?

如何在 JPanel 中绘制持久矩形:避免重绘时消失?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-29 11:04:02703浏览

How to Draw Persistent Rectangles in a JPanel: Avoiding Disappearance on Repaint?

绘制一个在下次绘制中不会消失的矩形

问题:

您需要创建一个 JPanel绘制即使重复调用 repaint 方法也保持可见的矩形。

建议的解决方案:

而不是创建矩形列表并在每次 JPanel 启动时重新绘制它们重绘时,考虑使用 BufferedImage 作为绘画表面。这种方法允许持久绘制,并且在重绘期间不会消失。

实现:

  1. 创建一个 BufferedImage 作为绘图表面。
  2. 使用Graphics2D对象在BufferedImage上绘制矩形。
  3. 在JPanel的paintComponent方法中显示BufferedImage。

示例代码:

<code class="java">class MyPanel extends JPanel {
    private BufferedImage canvasImage;

    // ...

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(canvasImage, 0, 0, this);
    }
}</code>

通过使用这种方法,即使在重复重绘调用之后,矩形也将在 JPanel 上保持可见,因为它是直接绘制在 BufferedImage 上的。

以上是如何在 JPanel 中绘制持久矩形:避免重绘时消失?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn