Line zeichnen und Werte ändern

feiste

Bekanntes Mitglied
Hi,

bisher habe ich eine Linie so gezeichnet:

Java:
 public void paint(Graphics g)
    {
        g.drawLine(x1,y1,x2,y2);
    }

Habe ca, 20 solche Linien und möchte jetzt, dass ich denen wieder neue X,Y-Werte zuweisen kann.

Also so sollte es dann in etwa aussehen weiß nur nicht wie ich es umsetze:

Java:
 public void paint(Graphics g)
    {
     Line[0].setX(x1,y1,x2,y2);
     Line[1].setX(...);
     usw.   
    }

so wie ich es ganz oben umgesetzt habe kann ich ja auf die Linie nicht mehr zugreifen.
Ist betimmt eine dumme Frage, aber hab das noch nie so gebraucht und in der Schule haben wir nur die obere Möglichkeit gelernt.

Danke!

lg feiste
 
In der paint()- bzw. paintComponent()-Methode sollte nur gezeichnet werden. Für Wertezuweisungen fügst du passende set()-Methoden in deine Klasse ein und rufst jeweils am Ende dieser
Code:
repaint()
auf.
 
und wie kann ich eine Linie als "Objekt" oder wie ich das nennen soll verwenden.
Weil wenn ich einmal eine Linie gezeichnet hab kann ich auf diese ja nicht mehr zugreifen so wie ich das ganz oben gelöst hab.
 
Du kannst eine Liste erzeugen, in der du Linien-Objekte verwaltest.
Beim Zeichnen durchläufst du nur die Liste und holst dir dabei die relevanten Daten.
 
Es gibt da eine Klasse die heißt Line2D.Double. Von der kannst du Instanzen anlegen und diese auch zeichnen, sowie die Koordinaten umsetzen.
 
Und dann läufst du die Liste mit einer Schleife durch

Könnte dann ungefähr so aussehen:

Java:
ArrayList<Line2D.Double> deineLinien = new ArrayList<Line2D.Double>();

//deineLinien irgendwo im Code mit deinen Linien befüllen

public void paintComponent(Graphics g) {

for(int i = 0; i < deineLinien.size(); i++) {
g.drawLine(deineLinien.get(i).getX1, deineLinien.get(i).getY1, deineLinien.get(i).getX2, deineLinien.get(i).getY2)
}
 

Neue Themen


Zurück
Oben