[gelöst] Wie kann ich später über Objekte zeichnen

Status
Nicht offen für weitere Antworten.

spooky33

Neues Mitglied
Hallo!

Mein Problem: Bei Programmstart lasse ich ein Dreieck mittels paintComponent zeichnen. Später soll der User per Mausklick Punkte in dem Dreieck zeichnen können. Leider funktioniert das bei mir nicht.
Kann mir jemand helfen?
Code:
	public class MapPane extends JPanel{
		Graphics2D var;
		public void paintComponent(Graphics comp){
		Graphics2D comp2D = (Graphics2D) comp;
		var = comp2D;
		comp2D.setColor(Color.pink);
		comp2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		Rectangle2D.Float background = new Rectangle2D.Float(0F,0F, (float)getSize().width, (float)getSize().height);
		comp2D.fill(background);
		BasicStroke pen = new BasicStroke(1F, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND);
		comp2D.setStroke(pen);
		comp2D.setColor(Color.blue);
		GeneralPath fl = new GeneralPath();
		fl.moveTo(10F, (float)getSize().height -10F);
		fl.lineTo(((float)getSize().width - 20F)/2F, 10F);
		fl.lineTo((float)getSize().width - 10F, (float)getSize().height -10F);
		fl.closePath();
		comp2D.draw(fl);
		}

		void drawPoint(int x, int y){
		var.setColor(Color.blue);
		var.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		BasicStroke pen = new BasicStroke(1F, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND);
		var.setStroke(pen);
		Ellipse2D.Float e = new Ellipse2D.Float((float)x,(float)y,1F,1F);
		var.draw(e);
		}

	}

	public void mouseReleased(MouseEvent e){start.setEnabled(true);
						reset.setEnabled(true);
						map.drawPoint(e.getX() , e.getY());
						repaint();}
 

Leroy42

Top Contributor
Deine Vorgehensweise ist falsch. Sämtliche Zeichnungen
müssen in der paintComponent-Methode stattfinden, damit
bei Überdeckung des Fensters und nachfolgendem
Wieder-In-Den-Vordergrund holen auch die geklickten
Punkte wieder erscheinen.

Hierzu musst du in einer Instanzvariablen alle geklickten Punkte
merken und in der paintComponent-Methode zeichnen.
Also in der Art:

Code:
List<Point> points = new ArrayList<Point>();
...
public void paintComponent(Graphics comp){
  // zeichne Dreieck
  for (Point point : points) {
    // zeichne point.x point.y
  }
Deine drawPoint-Methode macht dann nichts anderes,
als sich diesen neuen Punkt zu merken und via repaint()-Aufruf
ein Neuzeichnen (paintComponent...) zu veranlassen

Code:
void drawPoint(int x, int y) {
  points.add(new Point(x, y));
  repaint();
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
H Aufgabe so richtig gelöst? Java Basics - Anfänger-Themen 14
P Erste Schritte [gelöst]Erzeugen einer Klasse aus der Klassenbibliothek Java Basics - Anfänger-Themen 4
F Erste Schritte (Gelöst) Anfängerfrage Arraylist ausserhalb der Main Methode Java Basics - Anfänger-Themen 2
X problem mit equals.gelöst Java Basics - Anfänger-Themen 2
N Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 7
M Ist diese Aufgabe zu umständlich gelöst? Java Basics - Anfänger-Themen 9
S Aufgabe gelöst, lässt sich aber nicht kompilieren Java Basics - Anfänger-Themen 3
J Vereinigung von 2 Mengen [gelöst] Java Basics - Anfänger-Themen 2
W ProcessBuilder Problem -->gelöst - - Jetzt JEditorPane Problem Java Basics - Anfänger-Themen 6
A [gelöst]Array mit ArrayList-Einträgen Java Basics - Anfänger-Themen 12
B While Schleife steuern (gelöst) Java Basics - Anfänger-Themen 2
Strahlungsleck [gelöst]File Pfadangabe funktioniert nicht mit Servername/IP Java Basics - Anfänger-Themen 2
A [gelöst]Aus der Klasse heraus auf ein anderes Objekt zugreifen Java Basics - Anfänger-Themen 4
A [gelöst]Zwei Ausgaben, die eigentlich gleich sein sollten Java Basics - Anfänger-Themen 9
A [gelöst]Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 9
A [gelöst]ArrayList Java Basics - Anfänger-Themen 6
Bloodredangel [gelöst] Kompilieren von .java-Dateien per javac Java Basics - Anfänger-Themen 5
J Aufgabenverteilung über einen Zeitraum: So geschickt gelöst? Java Basics - Anfänger-Themen 3
D Probleme bei Code Portierung von C# nach Java [Gelöst] Java Basics - Anfänger-Themen 4
L [Gelöst:] positive Null Java Basics - Anfänger-Themen 4
L Gelöst: Negative Eingaben sollen verweigert werden Java Basics - Anfänger-Themen 3
L [Gelöst] Cannot make a static reference ... Java Basics - Anfänger-Themen 12
L [gelöst] Einfache Aufgabe, läuft aber nicht. Java Basics - Anfänger-Themen 8
vogella *Gelöst *Im Programm warten (wait()) Java Basics - Anfänger-Themen 2
S die konsole[gelöst] Java Basics - Anfänger-Themen 16
S schaltjahr (gelöst zu 90 %), allerdings folgeprob :/ Java Basics - Anfänger-Themen 18
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
B Derzeit JSF - Projekt, später soll MobileApp folgen Java Basics - Anfänger-Themen 5
krgewb Array später füllen Java Basics - Anfänger-Themen 1
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
J Hinzufügen eines Objekts in eine Liste, um später dann nochmal auf das Objekt zugreifen zu können Java Basics - Anfänger-Themen 8
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
V Variablen Double später deklarieren Java Basics - Anfänger-Themen 7
L Typ für Instanzvariable später festlegen Java Basics - Anfänger-Themen 17
C Programm stoppen - Zustand speichern - später fortführen Java Basics - Anfänger-Themen 7
F Mehrdimensionales Array zweite Diemnsion später Konstruieren? Wie Java Basics - Anfänger-Themen 2
S Teil derGUI zeigt sich erst später Java Basics - Anfänger-Themen 2
G Objekte binär speichern und später wieder einlesen? Java Basics - Anfänger-Themen 7
W Hilfe zu später Stunde ? Java Basics - Anfänger-Themen 16
S JTextField in Schleife erzeugt, später wieder abfragen ? Java Basics - Anfänger-Themen 11
G Thread schlafenlegen und später wieder aufwecken Java Basics - Anfänger-Themen 4
T BufferedReader beenden und später weiter lesen Java Basics - Anfänger-Themen 11
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben