"einfaches Grafikobjekt erzeugen"

Status
Nicht offen für weitere Antworten.

morki

Mitglied
Ich war mir unsicher, ob ich das hier posten soll oder doch nicht lieber bei den Anfängerfragen.
________

Hallo,
ich wollte ein kleines Testprogramm schreiben, was folgendes realisiert: Maus im Fenster bewegen -> neue Koordinaten übernehmen und wenn die Maus mit gedrückter Taste gezogen wird ("drag"), dann berechnet er den Winkel vom Anfangspunkt ausgehen aus.
Soweit so gut. Das klappt. Jetzt wollte ich eine kleine Gerade einfügen, welche um diese Position rotiert. Aber ich habe schon Probleme eine simple Gerade zu zeichnen. Kompilieren geht ohne Fehler, aber bei der Ausführung meldet er bei Zeile 21 und bei 27 Fehler. Das ist dort bei der auskommentieren Stelle. Exceptio wegen Nullpointer. Ich habe den Verdacht, dass er bei dem getGraphics schon wieder "vergessen" hat, auf welchem JPanel er zeichnen soll.

Wer kann mir helfen? wie bekomme ich das Programm zum Zeichnen? (Ich habe schon ewig gegoogelt und rumprobiert, aber es klappt nicht. Und sobald ich "Applet" lese, bekomme ich einen dicken Hals ...)

Code:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*; //Graphics?
import java.awt.Point;
import java.lang.Math;

public class MausRotation extends JFrame implements MouseMotionListener //JFrame .. JPanel ???
{
	Point Position_moved = new Point();
	double Winkel;

	public void Initialisierung()
	{
	    JFrame Fenster = new JFrame("MausRotation - Test");
	    Fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    Fenster.setSize(400, 400);
	    Fenster.setVisible(true);
		Fenster.addMouseMotionListener(this);

//		Graphics Grafik = getGraphics();
//		Grafik.drawLine(10,10,200,200);
	};

	public static void main(String args[])
	{
		MausRotation Arschkind = new MausRotation();
		Arschkind.Initialisierung();
	};

	public void mouseMoved(MouseEvent me)
	{
		Position_moved.setLocation(me.getX(),me.getY());
		System.out.println("Mittelpunkt ( " + Position_moved.getX() + " | " + Position_moved.getY() + " ) und Winkel = " + Winkel + " Grad");
    };

	public void mouseDragged(MouseEvent me)
	{
		double x_rel = me.getX() - Position_moved.getX();
		double y_rel = -1 * (me.getY() - Position_moved.getY());
		Winkel = Math.atan(y_rel / x_rel) * 180 / Math.PI;
		if (x_rel < 0) {Winkel = Winkel + 180;} else if (y_rel < 0) {Winkel = Winkel + 360;};

		System.out.println("Mittelpunkt ( " + Position_moved.getX() + " | " + Position_moved.getY() + " ) und Winkel = " + Winkel + " Grad");
    };
};
 
R

Roar

Gast
benenn deine variablen mal ein bisschen netter :bae: (und kleingeschrieben)
du musst die methode paintComponent() überschreiben und sort malen
 

morki

Mitglied
OK, danke. Ich habe deine Tipps beherzigt, aber ich bekomme es nicht gebacken.

Code:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*; //Graphics
import java.awt.Point;
import java.lang.Math;

public class MausRotation extends JPanel implements MouseMotionListener //JFrame .. JPanel ???
{
	Point Position = new Point();
	double Winkel;

	public void Initialisierung()
	{
	    JFrame Fenster = new JFrame("MausRotation - Test");
	    Fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    Fenster.setSize(400, 400);
	    Fenster.setVisible(true);
		Fenster.addMouseMotionListener(this);
	};

	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
        g.drawLine(10,10,100,100);
	};

	public static void main(String args[])
	{
		MausRotation mr = new MausRotation();
		mr.Initialisierung();
	};

	public void mouseMoved(MouseEvent me)
	{
		Position.setLocation(me.getX(),me.getY());
		System.out.println("Mittelpunkt ( " + Position.getX() + " | " + Position.getY() + " ) und Winkel = " + Winkel + " Grad");

		repaint();
    };

	public void mouseDragged(MouseEvent me)
	{
		double x_rel = me.getX() - Position.getX();
		double y_rel = -1 * (me.getY() - Position.getY());
		Winkel = Math.atan(y_rel / x_rel) * 180 / Math.PI;
		if (x_rel < 0) {Winkel = Winkel + 180;} else if (y_rel < 0) {Winkel = Winkel + 360;};

		System.out.println("Mittelpunkt ( " + Position.getX() + " | " + Position.getY() + " ) und Winkel = " + Winkel + " Grad");

		repaint();
    };
};


Ist diese Art des Überschreibens von paintComponent annehmbar?

Ich habe testweise die repaint() einmal bei mouseMoved und einmal bei mouseDragged, aber bei beiden zeichnet er nichts. Wahrscheinlich zeichnet er etwas, aber nicht auf der richtigen (sichtbaren) Oberfläche.
 

Wildcard

Top Contributor
Da er nichts zeichnet wenn du die Maus bewegst ist ja klar, du zeichnest ja immer die gleiche Linie (aber diese Linie siehst du doch, oder?)
 

morki

Mitglied
Nein, eben auch nicht. Das ist ja das Problem.
Ansonsten wäre ich schon zufrieden, wenn er wenigstens das täte.
Ich habe es jetzt mit einem Applet umgangen, auch wenn das später nicht helfen wird.
 

Wildcard

Top Contributor
1. setz mal vor dem zeichnen eine Farbe. g.setColor(blupp);
2. hast du dem Panel eine Größe gesetzt? (am besten du zeigst mal wie du das erstellst...)
 

morki

Mitglied
Ich denke ohne explizite Farbanweisung setzt er die Standardfarbe (schwarz)? Tat er bisher immer.

Das war der gesamte Quellcode. Wenn ich dort kein Panel erstelle, steht es also auch nicht drin. Darin könnte der Fehler liegen.
 

Wildcard

Top Contributor
morki hat gesagt.:
Das war der gesamte Quellcode. Wenn ich dort kein Panel erstelle, steht es also auch nicht drin. Darin könnte der Fehler liegen.
Du erbst doch von JPanel :wink:
Wo benutzt du MouseRotation denn? Den code will ich sehen...
 

Reality

Top Contributor
Und wenn du so machst?

Code:
frame.getLayeredPane().paintComponents(g);

Liebe Grüße
Reality
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
P Swing Empfehlungen für einfaches Computerspiel AWT, Swing, JavaFX & SWT 4
J JavaFX JavaFX Canvas einfaches Zeichenprogramm AWT, Swing, JavaFX & SWT 7
J GUI Anfänger einfaches Program AWT, Swing, JavaFX & SWT AWT, Swing, JavaFX & SWT 3
T Einfaches Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
P Einfaches GUI läuft nicht AWT, Swing, JavaFX & SWT 6
E Einfaches Quadrat zeichnen AWT, Swing, JavaFX & SWT 6
T 2D-Grafik Tutorial für ein einfaches Zeichenprogramm! AWT, Swing, JavaFX & SWT 2
2 Einfaches XY Diagramm selbst zeichnen? AWT, Swing, JavaFX & SWT 6
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
N SWT Einfaches Problem beim Layout AWT, Swing, JavaFX & SWT 8
F Einfaches Fenster "ordentlich" darstellen AWT, Swing, JavaFX & SWT 8
T einfaches Menü in swing das nicht herunterklappt? AWT, Swing, JavaFX & SWT 4
M Einfaches GUI basteln? AWT, Swing, JavaFX & SWT 5
B Einfaches JScrollPane mit Bildern füllen AWT, Swing, JavaFX & SWT 2
P GridBagLayout einfaches Beispiel geht nicht? AWT, Swing, JavaFX & SWT 5
M treetable einfaches beispiel gesucht AWT, Swing, JavaFX & SWT 6
G Einfaches frame mit einigen Rechtecken (Anfängerfrage) AWT, Swing, JavaFX & SWT 6
M Datenbericht aus Datenbank darstellen.(einfaches Konzept) AWT, Swing, JavaFX & SWT 2
G Grafikobjekt drehen AWT, Swing, JavaFX & SWT 6
I TIFF im CMYK-Farbmodell + mit dpi-Auflösung im Header erzeugen - wie? AWT, Swing, JavaFX & SWT 0
Monokuma Blöcke erzeugen (JavaFX) AWT, Swing, JavaFX & SWT 1
B Java FX In control.TreeCell-Implementierung Binding erzeugen AWT, Swing, JavaFX & SWT 0
Q-bert Dynamische Komponente erzeugen AWT, Swing, JavaFX & SWT 6
I Schöne Heatmap erzeugen AWT, Swing, JavaFX & SWT 10
K Color-Objekt erzeugen in CMYK AWT, Swing, JavaFX & SWT 2
MaxG. Swing Dynamisch grafische Objekte erzeugen AWT, Swing, JavaFX & SWT 12
kilopack15 JLabels im Array erzeugen AWT, Swing, JavaFX & SWT 2
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
B JavaFX Wie Treeview aus xml erzeugen AWT, Swing, JavaFX & SWT 11
S AWT JTextFields durch Array im JMenu erzeugen? AWT, Swing, JavaFX & SWT 19
M In JFreeChart Geraden erzeugen AWT, Swing, JavaFX & SWT 11
D Mit Klick auf Button ein neues Fenster erzeugen AWT, Swing, JavaFX & SWT 11
GreyFox JLabel in laufender Anwendung erzeugen AWT, Swing, JavaFX & SWT 6
K JavaFX Erzeugen dynamischer Layouts in fxml AWT, Swing, JavaFX & SWT 3
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
B Knoten, Kanten erzeugen AWT, Swing, JavaFX & SWT 4
H Quadrate dnamisch erzeugen und beliebig füllen AWT, Swing, JavaFX & SWT 7
P TableViewerColumn dynamisch erzeugen AWT, Swing, JavaFX & SWT 3
H Swing Button Klick soll "Untermenü-Buttons" erzeugen AWT, Swing, JavaFX & SWT 2
B Kontrast in einem Bild erzeugen AWT, Swing, JavaFX & SWT 37
J Halb-modales Fenster erzeugen AWT, Swing, JavaFX & SWT 5
A Panels in JavaFX zur Laufzeit erzeugen AWT, Swing, JavaFX & SWT 5
C SWT - widget dynamisch erzeugen und anzeigen AWT, Swing, JavaFX & SWT 10
M jTable - Größe beim Erzeugen AWT, Swing, JavaFX & SWT 4
B eine .jar erzeugen AWT, Swing, JavaFX & SWT 4
K Swing: Panel in Panel erzeugen AWT, Swing, JavaFX & SWT 11
S Bild fläche erzeugen AWT, Swing, JavaFX & SWT 10
G Große dynamische ContextMenus erzeugen (Eclipse RCP) AWT, Swing, JavaFX & SWT 4
A JTree aus Pfaden erzeugen AWT, Swing, JavaFX & SWT 3
T Leerraum im Jframe erzeugen AWT, Swing, JavaFX & SWT 3
E Profilsichten speichern und dynamsich erzeugen?! AWT, Swing, JavaFX & SWT 2
G Mit Java einen Button wie z.B. im Opera 10.63 erzeugen AWT, Swing, JavaFX & SWT 3
R Möglichkeiten ein abgeleitetes Objekt zu erzeugen AWT, Swing, JavaFX & SWT 4
A Swing Dynamisch Objekte erzeugen AWT, Swing, JavaFX & SWT 3
M Jframe wie bekommt man bei den zeile einen header erzeugen AWT, Swing, JavaFX & SWT 2
X Swing Neues Fenster erzeugen AWT, Swing, JavaFX & SWT 3
E AWT RenderedImage aus BufferedImage erzeugen, um Bild abzuspeichern? AWT, Swing, JavaFX & SWT 4
D Erzeugen eines leeren Graphics-Objektes AWT, Swing, JavaFX & SWT 7
M Swing Zweidimensionales Array mit Farben erzeugen AWT, Swing, JavaFX & SWT 16
H Swing Trennlinie wie bei Menüleiste erzeugen AWT, Swing, JavaFX & SWT 2
Semox Swing JFrame extern erzeugen und in anderes JFrame einbetten AWT, Swing, JavaFX & SWT 7
D Dynamischen JTree aus Hyperlinks bzw. Anker erzeugen AWT, Swing, JavaFX & SWT 8
G ActionEvents selbst erzeugen AWT, Swing, JavaFX & SWT 7
R JLabel und JSlider dynamisch erzeugen? AWT, Swing, JavaFX & SWT 3
O Button (ActionPerformed) soll neues JFrame erzeugen AWT, Swing, JavaFX & SWT 8
I Swing JTree aus ArrayList<File> erzeugen AWT, Swing, JavaFX & SWT 15
data89 Code-completion-window erzeugen - wie? AWT, Swing, JavaFX & SWT 2
J Swing Selbstschliessende Nachrichtenfenster erzeugen AWT, Swing, JavaFX & SWT 8
martinyyyy AWT Parameter erzeugen NullpointerException obwohl sie vorhanden sind? AWT, Swing, JavaFX & SWT 4
B Wie kann ich Greyscale Bilder aus ushort binary files erzeugen? AWT, Swing, JavaFX & SWT 8
multiholle Swing TransferHandler mit DataFlavor erzeugen AWT, Swing, JavaFX & SWT 2
H Swing jpanel in jframe erzeugen und anzeigen AWT, Swing, JavaFX & SWT 5
freakysheep mit jtree config file erzeugen AWT, Swing, JavaFX & SWT 2
E Komponenten in Event Dispatch Thread erzeugen? AWT, Swing, JavaFX & SWT 4
S JTable Daten bearbeiten und Grauwertbild erzeugen! AWT, Swing, JavaFX & SWT 4
S Nachträglich Swing-Elemente in JFrame erzeugen AWT, Swing, JavaFX & SWT 18
isowiz Leeres ImageIcon einer bes timmten Größe erzeugen AWT, Swing, JavaFX & SWT 2
S JMenu und ActionListener per Schleife erzeugen AWT, Swing, JavaFX & SWT 3
M Erzeugen von Komponenten während der Laufzeit AWT, Swing, JavaFX & SWT 6
G Felder dynamisch erzeugen! AWT, Swing, JavaFX & SWT 3
I Textfields dynamisch erzeugen AWT, Swing, JavaFX & SWT 4
J JFrame in Fenstermitte erzeugen AWT, Swing, JavaFX & SWT 16
N Threads kein neues Fenster erzeugen lassen AWT, Swing, JavaFX & SWT 4
A Grafik aus MIME-kodiertem Inhalt erzeugen AWT, Swing, JavaFX & SWT 2
G Datei-Browser - Wie solche Ansicht erzeugen? AWT, Swing, JavaFX & SWT 3
R Nicht rechteckige Komponenten erzeugen? AWT, Swing, JavaFX & SWT 7
K Erzeugen eines Jar-Files AWT, Swing, JavaFX & SWT 5
vogella Erzeugen der Hauptsicht (JFrame) AWT, Swing, JavaFX & SWT 2
M Aus Swing Oberfläche Bild erzeugen AWT, Swing, JavaFX & SWT 39
L Dynamisches Erzeugen eines Button AWT, Swing, JavaFX & SWT 2
M Abstrakte Graphics Klasse erzeugen AWT, Swing, JavaFX & SWT 2
F Komponente dynamisch erzeugen AWT, Swing, JavaFX & SWT 4
J Eigene Fehlermeldung in AWT erzeugen AWT, Swing, JavaFX & SWT 2
J Thread erzeugen AWT, Swing, JavaFX & SWT 9
M dynamischen JTree erzeugen AWT, Swing, JavaFX & SWT 4
S In einem button Panel 2 verschiedene TiteledBoarder erzeugen AWT, Swing, JavaFX & SWT 5
M ImageObserver, Bild dynamisch erzeugen und Speichern AWT, Swing, JavaFX & SWT 24
L Tabelle mit 5 spalten und 2 Zeilen erzeugen AWT, Swing, JavaFX & SWT 4
B Objekt in "actionPerformed" erzeugen und nutzen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben