Hallo Leute. Habe leider wieder ein Problem das ich mir gerade irgendwie nicht erklären kann. Wahrscheinlich habe ich Tomaten vor den Augen und es ist irgendwas total banales.
Es geht um den Zugriff auf eine Variable, hier im Beispiel die Referenz auf ein JPanel. Drei Methoden innerhalb einer Klasse die von MouseInputAdapter erbt, mousePressed, mouseReleased und mouse Dragged. Während die Kommunikation zwischen mousePredded und mouseReleased normal funktioniert, kann ich innerhalb der mouseDragged Methode nicht auf Variablen zugreifen, die in den übrigen initialisiert wurden. Aber warum?
Mir ist bekannt, dass mousePressed und mouseReleased im MouseAdapter und mouseDragged beim MouseMotionListener liegen, aber da ich sie in einer Klasse vereine (von MouseInputAdapter erbe) sollte das doch egal sein?
Wie auch immer, kann mich jemand mit der Nase auf den Fehler stoßen?
Genauer: Es geht um die Listener Klasse. In ihrer mousePressed methode initialisiere ich die Klassenvariable jpanel, während dem Draggen möchte ich auf diese zugreifen ( hier wilkürlich die größe via size(a,b) ändern). Doch es kommt eine Null Pointer Exception.
KSKB:
Es geht um den Zugriff auf eine Variable, hier im Beispiel die Referenz auf ein JPanel. Drei Methoden innerhalb einer Klasse die von MouseInputAdapter erbt, mousePressed, mouseReleased und mouse Dragged. Während die Kommunikation zwischen mousePredded und mouseReleased normal funktioniert, kann ich innerhalb der mouseDragged Methode nicht auf Variablen zugreifen, die in den übrigen initialisiert wurden. Aber warum?
Mir ist bekannt, dass mousePressed und mouseReleased im MouseAdapter und mouseDragged beim MouseMotionListener liegen, aber da ich sie in einer Klasse vereine (von MouseInputAdapter erbe) sollte das doch egal sein?
Wie auch immer, kann mich jemand mit der Nase auf den Fehler stoßen?
Genauer: Es geht um die Listener Klasse. In ihrer mousePressed methode initialisiere ich die Klassenvariable jpanel, während dem Draggen möchte ich auf diese zugreifen ( hier wilkürlich die größe via size(a,b) ändern). Doch es kommt eine Null Pointer Exception.
KSKB:
Java:
package Dragging;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.MouseInputAdapter;
public class Sichtbarkeit extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private Dimension dim;
int x, y, width, height;
Container pane;
JPanel draggingFlaeche;
public static void main(String[] args) {
new Sichtbarkeit();
}
public Sichtbarkeit() {
dim = Toolkit.getDefaultToolkit().getScreenSize();
x = dim.width / 3;
y = dim.height / 3;
width = dim.width / 3;
height = dim.height / 3;
pane = this.getContentPane();
draggingFlaeche = new JPanel();
draggingFlaeche.addMouseListener(new Listen());
draggingFlaeche.addMouseMotionListener(new Listen());
this.add(BorderLayout.CENTER, draggingFlaeche);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(x, y, width, height);
this.setVisible(true);
}
public class Listen extends MouseInputAdapter {
JPanel jpanel;
public void mousePressed(MouseEvent e) {
System.out.println("Mouse pressed");
jpanel = new JPanel();
}
public void mouseDragged(MouseEvent e) {
System.out.println("Mouse dragged");
jpanel.setSize(10, 10);
}
public void mouseReleased(MouseEvent e) {
System.out.println("Mouse released");
jpanel.setSize(10, 10);
}
}
}
Zuletzt bearbeitet: