Zeichnen einer Geraden im JFrame

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
ich habe hier diese Aufgabe gefunden:

http://www.java-forum.org/de/viewtopic.php?t=49795&highlight=linie+zeichnen+mouselistener

so, das ist im Prinzip voran ich mich orientieren kann.
Jedoch muss ich für meine Aufgabe nur MouseListener und nicht die Adapterklasse verwenden.
Zudem soll ich mit der Methode getGraphics arbeiten & MouseClicked verwenden...

Ich habe das versucht umzuschreiben...:

Code:
import java.awt.event.*; 
import javax.swing.*; 
import java.awt.Graphics;
import java.awt.event.MouseListener;

public class test extends JFrame implements MouseListener{ 
   int xAnf, yAnf; 

   
   
   public void mouseClicked(MouseEvent e){
	   xAnf = e.getX();
	   yAnf = e.getY();
	   repaint();

   }

	public void paint(Graphics g){
	      super.paint(g); 
	      g.getGraphics(xAnf, yAnf); 
	   }

	   public static void main(String[] args) { 
	      JFrame f = new JFrame("Gerade"); 
	      
	      f.addMouseListener(new test());

	      f.setDefaultCloseOperation(f.EXIT_ON_CLOSE); 
	      f.setSize(400, 400); 

	      f.setVisible(true); 
	   } 
	}

Kann mir da einer weiterhelfen?
 

Wildcard

Top Contributor
Mit getGraphics kann es schon aus rein technischen Gründen niemals richtig funktionieren, der Fehler liegt also in der Aufgabenstellung.
Eine korrekte Lösung hast du bereits selbst verlinkt.
 
G

Gast

Gast
Hmmm,
also die Aufgabenstellung lautet ganz genau so:
"Erstellen Sie eine Java-Applikation DrawLines. Diese soll auf einen JFrame mit Hilfe zweier
Mausklicks Linien malen. Der erste Mausklick gibt die Anfangskoordinate und der zweite die Endkoordinate
an. Mit der Methode getGraphics() können Sie sich den Grafikkontext zurückliefern
lassen und direkt aus der Methode mouseClicked auf das JFrame zeichnen. Implementieren Sie
dieses unter Verwendung des Interface MouseListener."

Also get die getGraphics Methode nicht?
Richtig?
 

Wildcard

Top Contributor
Man kann zwar mit getGraphics eine Linie zeichnen, die verschwindet allerdings sobald das Fenster überdeckt oder minimiert wird.
Aus (unter anderem) diesem Grund wirst du in diesem Forum einige hundert mal den Hinweis finden getGraphics nicht zu verwenden.
 

s-markus

Mitglied
Aber wenn er es doch so machen soll. So gehts:

Code:
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;

public class DrawLines extends JFrame implements MouseListener {
	
	private Point p = null;
	
	public DrawLines() { 
		this.addMouseListener(this);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setSize(400,400);
		this.setVisible(true);		
	}

	public void mouseClicked(MouseEvent e) {

		if( p == null ) p = e.getPoint();
		else {
			Graphics g = e.getComponent().getGraphics();
			g.drawLine(p.x, p.y, e.getPoint().x, e.getPoint().y);
			p = null;
		}	
	}

	public static void main(String[] a) { new DrawLines(); }

	public void mouseEntered (MouseEvent e) {}
	public void mouseExited (MouseEvent e) {}
	public void mousePressed (MouseEvent e) {}
	public void mouseReleased(MouseEvent e) {}
}
 
G

Guest

Gast
Ok,
kannst Du mit viell helfen aus der Lösung von 'Leroy42' die MouseAdapter Methode zu entfernen, sodass es nur noch mit MouseListener klappt?

Die Lösung war diese:
Code:
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Gerade extends JPanel { 
   int xAnf, yAnf; 
   int xEnd, yEnd; 
    
   public Gerade() { 
      addMouseListener(new MouseAdapter() { 
         public void mousePressed(MouseEvent e) { 
            xAnf = xEnd = e.getX(); 
            yAnf = yEnd = e.getY(); 
            repaint(); 
         }}); 
      addMouseMotionListener(new MouseMotionAdapter() { 
         public void mouseDragged(MouseEvent e) { 
            xEnd = e.getX(); 
            yEnd = e.getY(); 
            repaint(); 
         }}); 
   } 
   protected void paintComponent(Graphics g) { 
      super.paintComponent(g); 
      g.drawLine(xAnf, yAnf, xEnd, yEnd); 
   } 

   public static void main(String[] args) { 
      JFrame f = new JFrame("Gerade"); 
      f.getContentPane().add(new Gerade()); 
      f.setDefaultCloseOperation(f.EXIT_ON_CLOSE); 
      f.setSize(400, 400); 
      f.setLocationRelativeTo(null); 
      f.setVisible(true); 
   } 
}
 

s-markus

Mitglied
Du musst eigentlich genau das Gleiche (aber nicht das Selbe) schreiben wie in meiner Loesung, nur anstatt MouseAdapter MouseListener und dann noch die 4 Methoden die bei meiner Loesung ganz unten stehen nach dem 1. Semikolon in Zeile 15 reinkopieren.
Ach ja und noch mousePressed mit mouseClicked tauschen.
 
G

Gast

Gast
Danke, werde ich versuchen, Deine Antwort habe ich noch nicht gelesen beim Posten...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kulturfenster Probleme beim Zeichnen einer Geraden Java Basics - Anfänger-Themen 8
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
J Hoher Speicherverbrauch beim Zeichnen von Images aus einer ArrayList Java Basics - Anfänger-Themen 10
S Zeichnen einer Parabel (ax²+bx+c) Java Basics - Anfänger-Themen 6
C Problem mit Zeichnen auf einer extends Canvas Class... Java Basics - Anfänger-Themen 2
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
K 3D Fläche Zeichnen Java Basics - Anfänger-Themen 2
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
R Iterativ zeichnen Java Basics - Anfänger-Themen 1
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
V Speicherzustand zeichnen Java Basics - Anfänger-Themen 0
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
Mosquera f(x)=x² zeichnen Java Basics - Anfänger-Themen 5
J Graphen in Java zeichnen Java Basics - Anfänger-Themen 11
L Anfängerin möchte Linie zeichnen Java Basics - Anfänger-Themen 8
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
S Zeichnen mit Wiederholungen Java Basics - Anfänger-Themen 12
B Wie kann ich Linien rekursiv zeichnen? Java Basics - Anfänger-Themen 4
P Einen String mittig zeichnen? Java Basics - Anfänger-Themen 1
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Wie kann ich in Java eine Kurve aus Punkten zeichnen? Java Basics - Anfänger-Themen 25
snipesss Linie zeichnen ohne extra Klasse? Java Basics - Anfänger-Themen 3
C Umrisse von Bilddateien mithilfe Polygonen zeichnen Java Basics - Anfänger-Themen 5
G Aus einem Code ein Sequenzdiagramm zeichnen? Java Basics - Anfänger-Themen 1
K Rechtecke rekursiv zeichnen Java Basics - Anfänger-Themen 20
V Quadrate rekursiv zeichnen Java Basics - Anfänger-Themen 7
B Java Graphen zeichnen - Brauche Hilfe Java Basics - Anfänger-Themen 9
C Schleifenaufgabe - Molekül zeichnen Java Basics - Anfänger-Themen 6
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
H Linie zeichnen... Java Basics - Anfänger-Themen 16
N Treppe zeichnen Java Basics - Anfänger-Themen 1
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
M in Java zeichnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
D Zeichnen, Schleifen Java Basics - Anfänger-Themen 7
S Zeichnen , Schleifen Java Basics - Anfänger-Themen 4
S Rechteck zeichnen Java Basics - Anfänger-Themen 2
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S Wo beginnt ein Draw String zu zeichnen. Java Basics - Anfänger-Themen 4
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
llabusch Layout neu zeichnen lassen Java Basics - Anfänger-Themen 2
A Histogramm zeichnen Java Basics - Anfänger-Themen 2
S Punkt in Java zeichnen Java Basics - Anfänger-Themen 14
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
D Haus zeichnen Java Basics - Anfänger-Themen 4
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
S Problem mit "Zeichnen auf Kommando" Java Basics - Anfänger-Themen 2
M Double Punkte Zeichnen Java Basics - Anfänger-Themen 7
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
F Line zeichnen und Werte ändern Java Basics - Anfänger-Themen 6
B Grafik zeichnen Java Basics - Anfänger-Themen 25
B Erste Schritte Weihnachtsbaum zeichnen Java Basics - Anfänger-Themen 6
N Per Button Kreis zeichnen Java Basics - Anfänger-Themen 8
T mehrere Punkte zeichnen ohne löschung Java Basics - Anfänger-Themen 4
J Für 3 Sekunden etwas bestimmtes zeichnen Java Basics - Anfänger-Themen 8
C Kreis nach Mausklick zeichnen Java Basics - Anfänger-Themen 5
C Auf Button-Druck zeichnen Java Basics - Anfänger-Themen 2
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
D Klassen Zeichnen von Figuren mittels vorgegebener Klasse Java Basics - Anfänger-Themen 3
J Schachbrett zeichnen Java Basics - Anfänger-Themen 9
J Innerhalb der Border zeichnen Java Basics - Anfänger-Themen 9
A Blitze mit Linien zeichnen Java Basics - Anfänger-Themen 15
U Kreis um Textfelder zeichnen Java Basics - Anfänger-Themen 4
R Balkendiagramm zeichnen Java Basics - Anfänger-Themen 14
J Bild anhand von Koordinaten zeichnen Java Basics - Anfänger-Themen 10
B GUI Parkplatz zeichnen Java Basics - Anfänger-Themen 10
S Mehrere Zeichnungen zeichnen Java Basics - Anfänger-Themen 16
A Linie Zeichnen Applet mit Double Wert Java Basics - Anfänger-Themen 3
F Image übertragen und zeichnen Java Basics - Anfänger-Themen 8
P Funktion zeichnen Java Basics - Anfänger-Themen 6
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
T Sterne zeichnen Java Basics - Anfänger-Themen 4
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
G Polygon in Frame zeichnen Java Basics - Anfänger-Themen 3
S X Zeichnen als Muster ausgeben Java Basics - Anfänger-Themen 5
P Kurven zeichnen Java Basics - Anfänger-Themen 5
I dauerhaftes zeichnen Java Basics - Anfänger-Themen 3
H Zeichnen in JPanel Java Basics - Anfänger-Themen 8
W Funktions-Graphen "zeichnen" Java Basics - Anfänger-Themen 2
J Bilder auf Bilder zeichnen Java Basics - Anfänger-Themen 8
I Rechteck Zeichnen Java Basics - Anfänger-Themen 9
W Zeichnen in Swing Java Basics - Anfänger-Themen 7
N Linie auf spezielle Area zeichnen Java Basics - Anfänger-Themen 9
K Auf JPanel Zeichnen Java Basics - Anfänger-Themen 8
E Frame neu Zeichnen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben