g.drawLine in g 2D casten

Diskutiere g.drawLine in g 2D casten im Java Basics - Anfänger-Themen Forum

  1. #1
    feldmarv


    g.drawLine in g 2D casten

    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.

    (Dicke bei Graphics Ovject einstellen)

    Vielen Dank für die Hillfe.
    feldmarv

  2. #2
    SlaterB

    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

  3. #3
    feldmarv


    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));

  4. #4
    beastofchaos


    Wenn du ganz faul bist:

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

    auch wenn du dafür 2 Klammern mehr machen musst xD

  5. #5
    Marco13


    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(...);
    }

  6. #6
    beastofchaos


    Dann natürlich schon, aber bei so einem Einzeiler geht das ja noch

Java Videokurs

Keine Antwort auf Deine Suche gefunden? Registriere Dich kostenlos und stelle Deine eigene Frage zu Java!

Jetzt kostenlos registrieren