HomeArtikelDownloadsForum
PCFreunde.deForumEntwicklungJava
Besucher online: 931
Schnellsuche

Anzeigen

Community

Foren
Java Seite 1/1
Oberfläche aktualisieren
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Nachricht
Bchle123
Titel: Oberfläche aktualisieren 28.09.2011 19:52
7 Punkte (?)
 
Anmeldungsdatum: 22.07.2010
Beiträge: 7
hallo leute,
Ich habe ein Problem mit meiner Javaanwendung. Ich habe eine Oberfläche, die ein JComponent enthält. Auf diesem möchte ich gerne Punkte nacheinander einfügen. Sobald ich jedoch einen neuen Punkt einfüge, wird der alte Punkt nicht mehr angezeigt.
Zitat:
public static void zeichneAlleKomponenten()
{
for (Knoten kn :vorhandeneKnoten)
{
zf.zeichneKnoten(kn.gibXKoordinate(),kn.gibYKoordinate(),kn.gibKnotenfarbe());
}
}

Die Methode zeichneAlleKomponenten soll alle Kreise aus der ArrayList vorhandeneKnoten zeichnen.
Zitat:
public void zeichneKnoten(int x, int y, Color farbeDesKnotens)
{
Ellipse2D.Double circle = new Ellipse2D.Double(x, y, 15, 15);

setColor(farbeDesKnotens);
setShape(circle);
repaint();
}

Diese Methode zeichnet jeweils den einzelnen Kreis.
Zitat:
protected void paintComponent (Graphics g)
{

super.paintComponent(g);

if(shape!=null && c!=null)
{
Graphics2D graphics2D = (Graphics2D) g;
graphics2D.setColor(c);
//graphics2D.draw(shape);
graphics2D.fill(shape);
}
}

Das ist noch meine überschriebene paintComponent- Methode.
Ich hab schon viele unterschiedliche Dinge ausprobiert, jedoch finde ich keine Lösung. Kann mir vielleicht jemand helfen?

[Zuletzt bearbeitet: 28.09.2011 19:55]
Private Nachricht senden  
 
MadBonsaiJr
Titel: Oberfläche aktualisieren 17.11.2011 20:49
1.522 Punkte (?)
Anmeldungsdatum: 26.08.2009
Beiträge: 791
Tutorial Autor (?)
Ich gebe zu, dass ich mich mit dem Stoff noch nich auseinandergesetzt habe, aber kann man nicht einfach 2 Punkte schreiben, von denen der eine den "verloren gegangenen" ersetzt? *duck*

________________________________________
Pc: http://www.sysprofile.de/id146539
Phobie vor langen Wörtern: Hippopotomonstrosesquippedaliophobie
Private Nachricht senden  
 
applecake
Titel: Oberfläche aktualisieren 18.11.2011 11:03
33 Punkte (?)
 
Anmeldungsdatum: 13.07.2011
Beiträge: 29
Deine Knoten werden alle gezeichnet. Allerdings hast du ein Verständnisproblem.
paintComponent() "leert" zuerst die Komponente und zeichnet diese dann anschließend neu. In deinem Fall zeichnet sie dann das Objekt "shape".
Du rufst die paintComponent-Methode für jeden Punkt auf, und überschreibst jedes mal das zu zeichnende Shape.
Du verstehst was ich meine? Also du zeichnest jeden einzelnen Punkt, aber überzeichnest das gezeichnete wieder mit dem nächsten Punkt, und so bleibt dir nur der letzte Punkt erhalten.

Ich würde vorschlagen du implementierst in die Knoten-Klasse eine Methode drawObject(Graphics g) die deine Punkte zeichnet und holst dir das Graphics-Objekt von deiner Komponente.

lg

________________________________________
http://www.sysprofile.de/id160900
Private Nachricht senden  
 
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Community Login
eMail:
Passwort:
Auto-Login