Maison  >  Article  >  Java  >  Comment dessiner des rectangles persistants dans un JPanel : éviter la disparition lors de la repeinture ?

Comment dessiner des rectangles persistants dans un JPanel : éviter la disparition lors de la repeinture ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 11:04:02703parcourir

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

Dessiner un rectangle qui ne disparaîtra pas dans la prochaine peinture

Problème :

Vous devez créer un JPanel qui dessine des rectangles qui restent visibles même lorsque la méthode repaint est appelée à plusieurs reprises.

Solution proposée :

Au lieu de créer une liste de rectangles et de les redessiner à chaque fois que le JPanel est repeint, pensez à utiliser une BufferedImage comme surface de peinture. Cette approche permet un dessin persistant qui ne disparaîtra pas lors des repeints.

Mise en œuvre :

  1. Créez une image tampon pour servir de surface de dessin.
  2. Dessinez le rectangle sur BufferedImage à l'aide de l'objet Graphics2D.
  3. Affichez BufferedImage dans la méthode paintComponent de JPanel.

Exemple de code :

<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>

En utilisant cette approche, le rectangle restera visible sur le JPanel même après des appels répétés de repaint, car il est dessiné directement sur BufferedImage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn