g.drawLine in g 2D casten

feldmarv

Mitglied
Hallo

Ich bin Java Anfänger und habe ein Frage.
Ich zeichne eine Linie mit g.drawLine(x, y, x2, y2);
Die Koordinaten werden per MouseListener ausgelesen und ich kann die Linie sauber mit der Maus zeichnen. Aber nun wollte ich die Dicke der Linie einstellen können.
Dazu habe ich im Forum gelesen, dass ich diese g.drawLine Methode in eine Graphics 2D "casten" soll.
Aber wie muss ich das machen.

(http://www.java-forum.org/java-basics-anfaenger-themen/48211-dicke-graphics-ovject-einstellen.html)

Vielen Dank für die Hillfe.
feldmarv
 
das Graphics-Object g sollst du casten,
siehe z.B.
Java2D: An Introduction and Tutorial
den Code unter '2.1 Drawing Shapes: Overview'
bzw. fast in jedem Beispiel dort

welche Methoden Graphics2D hat aber besser nachschlagen,
oder wie man an der grundsätzlichen Cast-Frage sieht, besser ganze Tutorial lesen wie das angegebene
oder sogar noch zu weiteren Grundlagen wie Casten
 
Hat geklappt. Ein anderer Forumbeitrag hat auch noch geholfen 😀

Vielen Dank.

g.drawLine(x, y, x2, y2);
Graphics2D g2 = ( Graphics2D )g;
g2.setStroke(new BasicStroke(3));
 
Wenn du ganz faul bist:

Code:
((Graphics2D) g).setStroke(new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 0));
bzw. für dich noch kürzer:
Code:
((Graphics2D) g).setStroke(new BasicStroke(3));

auch wenn du dafür 2 Klammern mehr machen musst xD
 
Code wie
Code:
protected void paintComponent(Graphics g)
{
    super.paintComponent(g);
    ((Graphics2D)g).drawThis(...);
    ((Graphics2D)g).drawThat(...);
    ((Graphics2D)g).drawHere(...);
    ((Graphics2D)g).drawThere(...);
    ((Graphics2D)g).drawSomething(...);
}
sollte man IMHO nicht schreiben. Besser
Code:
protected void paintComponent(Graphics gr)
{
    super.paintComponent(gr);
    Graphics2D g = (Graphics2D)g;
    g.drawThis(...);
    g.drawThat(...);
    g.drawHere(...);
    g.drawThere(...);
    g.drawSomething(...);
}
 

Zurück
Oben