Ich versuche, eine Farbe-Software zu erstellen, aber am Ende mit dem Problem der verschwinden Grafiken.Java - Zeichnung verschwindet beim Minimieren von JFrame
Meine Klasse ist wie folgt:
public class CanvasFrame extends JPanel {
private Point lastMousePoint;
ArrayList<Point> location = new ArrayList<Point>();
public CanvasFrame() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
lastMousePoint = new Point (e.getX(), e.getY());
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Graphics g = getGraphics();
g.drawLine(lastMousePoint.x, lastMousePoint.y, e.getX(), e.getY());
lastMousePoint = new Point(e.getX(), e.getY());
g.dispose();
}
});
}
public static void main(String[] args) {
JFrame frame = new JFrame("Drawing with friends");
frame.getContentPane().add(new CanvasFrame(), BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
}
}
Die Zeichnung Teil der Software funktioniert prima, aber wie die Ausgabe informiert, die Zeichnung verschwindet auf minimiert wird.
Ich habe versucht, umgehen mit Override Graphics g, sowie das Speichern aller Mauspunkte in einem Array, aber ohne Glück. In meiner Umgebung konnte ich keine Lösung für mein genaues Projekt finden, also hoffe ich, dass ihr helfen könnt.
Wo Sie die Methode paintcomponent mit Zeichencode außer Kraft setzen kann? Ihre mouseDragged-Methode sollte die Punkte in einer Liste speichern, damit die paintComponent-Methode die Punkte aus der Liste ziehen kann. –