Rechteck drehen

coacheia

Neues Mitglied
Hallo
Ich beschäftige mich erst seit kurzem mit Java und bin daher noch nicht sehr sicher darin.
Ich muss mit der linken Maustaste ein Rechteck zeichnen welches wieder verschwindet wenn ich ein Zweites zeichne. Das habe ich geschafft :idea: jedoch muss ich mit der rechten Maustaste das Rechteck um 90 Grad drehen können. Falls jemand einen Tipp hat oder einen Link wo dies erklärt ist oder selbs kurz helfen könnte dann wäre ich sehr froh :toll:

Mit freundlichen Grüssen
Sophia

Java:
 import java.applet.Applet;
import java.awt.*;


import java.awt.event.*;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
 

public class Negyszog extends Applet { 
    if (SwingUtilities.isRightMouseButton (evt))
    
    @Override

    SelectionArea drawingPanel;

    Label label;

    @Override
    public void init() {

        GridBagLayout gridBag = new GridBagLayout();

        GridBagConstraints c = new GridBagConstraints();

        setLayout(gridBag);

        drawingPanel = new SelectionArea(this);

        c.fill = GridBagConstraints.BOTH;

        c.weighty = 1.0;

        c.gridwidth = GridBagConstraints.REMAINDER; //end row

        gridBag.setConstraints(drawingPanel, c);

        add(drawingPanel);

        label = new Label("Drag within the framed area.");

        c.fill = GridBagConstraints.HORIZONTAL;

        c.weightx = 1.0;

        c.weighty = 0.0;

        gridBag.setConstraints(label, c);

        add(label);

        drawingPanel.setVisible(true);

        validate();

    }

  

    @Override
    public void update(Graphics g){

        paint(g);

    }

           

}

class SelectionArea extends Canvas implements ActionListener, MouseListener, MouseMotionListener{

 

	Rectangle currentRect;

    Negyszog controller;

    //for double buffering

    Image image;

    Graphics offscreen;

    public SelectionArea(Negyszog controller) {

        super();

        this.controller = controller;

        addMouseListener(this);

        addMouseMotionListener(this);      

    }

 
        @Override
    public void actionPerformed(ActionEvent ae){

        repaintoffscreen();

    }
     

    public void repaintoffscreen(){

        image = createImage(this.getWidth(), this.getHeight());

        offscreen = image.getGraphics();

        Dimension d = getSize();

        if(currentRect != null){

            Rectangle box = getDrawableRect(currentRect, d);           

            //Draw the box outline.

            offscreen.drawRect(box.x, box.y, box.width - 1, box.height - 1); 

            //repaint();

        }

    }

     

        @Override
    public void mouseEntered(MouseEvent me) {}

        @Override
    public void mouseExited(MouseEvent me){ }

        @Override
    public void mouseClicked(MouseEvent me){}

        @Override
    public void mouseMoved(MouseEvent me){}

     

        @Override
    public void mousePressed(MouseEvent me) {      

        currentRect = new Rectangle(me.getX(), me.getY(), 0, 0);

        repaintoffscreen();    

    }

        @Override
    public void mouseDragged(MouseEvent me) {

        System.out.println("here in dragged()");

        currentRect.setSize(me.getX() - currentRect.x, me.getY() - currentRect.y);

        repaintoffscreen();

        repaint();

    }

 
        @Override
    public void mouseReleased(MouseEvent me) {

        currentRect.setSize(me.getX() - currentRect.x, me.getY() - currentRect.y);

        repaintoffscreen(); 

        repaint();

    }

 

        @Override
    public void update(Graphics g){

        paint(g);

    }

        @Override
    public void paint(Graphics g) {

        g.drawImage(image, 0, 0, this);

    }
 

    Rectangle getDrawableRect(Rectangle originalRect, Dimension drawingArea) {

        int x = originalRect.x;

        int y = originalRect.y;

        int width = originalRect.width;

        int height = originalRect.height;

        //Make sure rectangle width and height are positive.

        if (width < 0) {

            width = 0 - width;

            x = x - width + 1;

            if (x < 0) {

                width += x;

                x = 0;

            }

        }

        if (height < 0) {

            height = 0 - height;

            y = y - height + 1;

            if (y < 0) {

                height += y;

                y = 0;

            }

        }

        //The rectangle shouldn't extend past the drawing area.

        if ((x + width) > drawingArea.width) {

            width = drawingArea.width - x;

        }

        if ((y + height) > drawingArea.height) {

            height = drawingArea.height - y;

        }

        return new Rectangle(x, y, width, height);
        
  
  
    }

}
 

Gucky

Top Contributor
Hallo Sophia,

ich habe mir deinen Code nicht vollständig durchgelesen aber scheinbar kennst du die Höhe und die Breite.
Dann speicherst du bei einem Klick der rechten Maustaste die Breite in einer Hilfsvariable, setzt die Breite auf den Wert der Höhe und schreibst den Wert der Hilfsvariable in die Variable, die die Höhe beschreibt. Also:

Java:
int hilf = breite;
breite = hoehe;
hoehe = hilf;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Rechteck "umdrehen"/über die Kante drehen AWT, Swing, JavaFX & SWT 4
R Rechteck drehen! AWT, Swing, JavaFX & SWT 4
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
berserkerdq2 Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das? AWT, Swing, JavaFX & SWT 12
B AWT Rechteck abnehmen lassen AWT, Swing, JavaFX & SWT 9
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
E Button verschwindet nachdem ein Rechteck gezeichnet wurde AWT, Swing, JavaFX & SWT 5
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
L Swing Ein Rechteck in ein Grid Zeichnen AWT, Swing, JavaFX & SWT 5
D Quadrat, Rechteck zeichnen AWT, Swing, JavaFX & SWT 3
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
F 2D-Grafik Gestricheltes Rechteck AWT, Swing, JavaFX & SWT 1
Z Frame mit Rechteck! AWT, Swing, JavaFX & SWT 16
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
S Warum wird dieses Rechteck nicht korrekt gemalt? AWT, Swing, JavaFX & SWT 7
S "Quadrat oder Rechteck" - Check AWT, Swing, JavaFX & SWT 3
D 2D-Grafik Rechteck befindet sich unter dem Rahmen des JFrame. AWT, Swing, JavaFX & SWT 1
M JavaFX Rechteck mit MausListener AWT, Swing, JavaFX & SWT 3
B Rechteck Mit Hilfe Von Timeline, KeyFrames animieren AWT, Swing, JavaFX & SWT 3
I Rechteck eines Graphics eines JPanels in einem anderen JPanel anzeigen AWT, Swing, JavaFX & SWT 7
T transparent geht nicht (btw: rechteck) AWT, Swing, JavaFX & SWT 13
J SWT Rechteck Füllfarbe wird bei Action falsch gefüll AWT, Swing, JavaFX & SWT 2
H Rechteck via Mouse bewegen AWT, Swing, JavaFX & SWT 2
A Rechteck zeichen AWT, Swing, JavaFX & SWT 4
C Auto fahren - Rechteck JFrame AWT, Swing, JavaFX & SWT 6
E Swing Rechteck und Kreise verschieben AWT, Swing, JavaFX & SWT 3
G Swing Rechteck uebermalen AWT, Swing, JavaFX & SWT 10
J 2D-Grafik Rechteck mit dickerem Rand zeichnen AWT, Swing, JavaFX & SWT 8
H Rechteck grafisch ausgeben (2D) AWT, Swing, JavaFX & SWT 3
G Rechteck mit Farbverlauf AWT, Swing, JavaFX & SWT 5
E Rechteck in JPanel Zeichnen AWT, Swing, JavaFX & SWT 6
G Rechteck zeichnen + "special features" :-) AWT, Swing, JavaFX & SWT 16
A Java Button mal nicht nur als rechteck AWT, Swing, JavaFX & SWT 16
B awt rechteck zeichnen AWT, Swing, JavaFX & SWT 3
K Problem mit JLabel, Rechteck, repaint() ;) AWT, Swing, JavaFX & SWT 2
J Auf Button - Druck soll Rechteck Farbe verändern AWT, Swing, JavaFX & SWT 8
M Rechteck zeichnen AWT, Swing, JavaFX & SWT 4
TheJavaKid Kreis, Rechteck, Linie. verschieben AWT, Swing, JavaFX & SWT 5
S Rechteck per Mouse aufziehen AWT, Swing, JavaFX & SWT 7
A Dreidimensionales Rechteck AWT, Swing, JavaFX & SWT 3
C Schräges Rechteck in Swing? AWT, Swing, JavaFX & SWT 7
G Rechteck normalisieren AWT, Swing, JavaFX & SWT 2
P Rechteck "verkehrt" herum zeichnen AWT, Swing, JavaFX & SWT 2
onek2705 ButtonArray drehen AWT, Swing, JavaFX & SWT 5
N Bild Drehen AWT, Swing, JavaFX & SWT 1
B JavaFX Bild um die eigene Achse drehen lassen AWT, Swing, JavaFX & SWT 0
S JavaFX Drehen um eigene Achse AWT, Swing, JavaFX & SWT 2
J Images drehen AWT, Swing, JavaFX & SWT 5
M Java FX 3D kamera drehen oder lieber die Gruppe drehen AWT, Swing, JavaFX & SWT 10
B Graphics2D Componente Drehen AWT, Swing, JavaFX & SWT 2
TheSorm Rectangle drehen AWT, Swing, JavaFX & SWT 9
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
B 2D-Grafik String drehen/platzieren/formatieren in bestimmten Bereich AWT, Swing, JavaFX & SWT 1
L 2D-Grafik Bild in Richtung Maus drehen AWT, Swing, JavaFX & SWT 18
F 2D-Grafik Punkte um Mittelpunkt drehen AWT, Swing, JavaFX & SWT 11
T Bild drehen ohne Resize AWT, Swing, JavaFX & SWT 3
S Objekt durch Tasteneingabe mehrmals drehen AWT, Swing, JavaFX & SWT 9
M Rechtecke drehen AWT, Swing, JavaFX & SWT 15
P JComponent / JLabel drehen (Rotation) AWT, Swing, JavaFX & SWT 2
S Bild in Richtung Mauszeiger drehen AWT, Swing, JavaFX & SWT 2
D Swing Spielfeld drehen von Pentago endet in einer Katastrophe AWT, Swing, JavaFX & SWT 2
Jats 2D-Grafik Quadrat/Dreieck um Mittelpunkt drehen AWT, Swing, JavaFX & SWT 10
B 2D-Grafik Zeilen drehen im JEditorPane AWT, Swing, JavaFX & SWT 3
G Grafikobjekt drehen AWT, Swing, JavaFX & SWT 6
G Swing JLabel drehen für Kartenspiel AWT, Swing, JavaFX & SWT 9
R Bild drehen UND skalieren (Image bzw BufferedImage) AWT, Swing, JavaFX & SWT 5
multiholle Swing Panel um 90° drehen AWT, Swing, JavaFX & SWT 5
O JLabel um 90 Grad drehen ? AWT, Swing, JavaFX & SWT 9
E Bild drehen AWT, Swing, JavaFX & SWT 4
S BufferedImage drehen AWT, Swing, JavaFX & SWT 3
N Formen drehen und auf JPanel zeichnen AWT, Swing, JavaFX & SWT 6
S wie Jpanel drehen AWT, Swing, JavaFX & SWT 4
J swing komponenten drehen? AWT, Swing, JavaFX & SWT 11
K Graphics drehen? AWT, Swing, JavaFX & SWT 7
B Ein Image Objekt drehen? AWT, Swing, JavaFX & SWT 2
N Bild drehen (AffinTransform etc.) AWT, Swing, JavaFX & SWT 2
N Bild drehen AWT, Swing, JavaFX & SWT 7
thE_29 Bild drehen AWT, Swing, JavaFX & SWT 6
C Koordinatensystem drehen AWT, Swing, JavaFX & SWT 3
B Text drehen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben