Problem:
Sie müssen ein JPanel erstellen, das Zeichnet Rechtecke, die auch dann sichtbar bleiben, wenn die Repaint-Methode wiederholt aufgerufen wird.
Vorgeschlagene Lösung:
Anstatt eine Liste von Rechtecken zu erstellen und diese jedes Mal neu zu zeichnen, wenn das JPanel aufgerufen wird neu gestrichen haben, sollten Sie erwägen, ein BufferedImage als Maloberfläche zu verwenden. Dieser Ansatz ermöglicht ein dauerhaftes Zeichnen, das bei Neulackierungen nicht verschwindet.
Implementierung:
Beispielcode:
<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>
Durch diesen Ansatz bleibt das Rechteck auch nach wiederholten Repaint-Aufrufen auf dem JPanel sichtbar, da es direkt auf dem BufferedImage gezeichnet wird.
Das obige ist der detaillierte Inhalt vonWie zeichnet man dauerhafte Rechtecke in einem JPanel: Verhindert, dass sie beim Repaint verschwinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!