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