Hey , ich hab da ein Drag and Drop Problem, bei dem ich nicht weiter komme.
Ich habe 2 JPanels, Panel1 und Panel2. Auf Panel1 liegt nun ein BufferedImage, welches ich verschieben möchte. Also habe ich mit Mouse- und MouseMotionListeners gearbeitet, wobei der MouseListener überprüft ob Koordinaten der Maus, mit dem des Image übereinstimmen, ein Flag setzt und von dort in der Methode mouseDragged(...) durch Übergabe der Mauskoordinaten "verschoben" wird. Sobald das Image die Grenzen des Panel1 überschreitet, wird ein SubImage des BufferedImage mit dem "fehlenden" Teil erstellt und auf Panel2 angezeigt. Wenn das Image vollständig im Panel2 ist, dachte ich mir, übergebe ich das Image dem Panel2 und lösche es aus Panel1, setze das Flag im Panel1 zurück, um den MotionListener zu deaktivieren und rufe die Methode
auf, welche das Image übergibt, dass weiterhin verschoben werden soll und das Flag in Panel2 aktiviert,um die Methode mouseDragg(...) dort freizugeben.
Das Problem ist aber nun, Panel2 hat quasi niemals mitbekommen, dass die Maustaste gedrückt wurde, da dies in Panel1 geschah, wodurch mir keine Koordinaten über das MouseEvent von mouseDragged(...) übergeben werden.
Wie kann ich dem Panel2 klar machen, dass die Maus gedrückt ist ?
Ich habe 2 JPanels, Panel1 und Panel2. Auf Panel1 liegt nun ein BufferedImage, welches ich verschieben möchte. Also habe ich mit Mouse- und MouseMotionListeners gearbeitet, wobei der MouseListener überprüft ob Koordinaten der Maus, mit dem des Image übereinstimmen, ein Flag setzt und von dort in der Methode mouseDragged(...) durch Übergabe der Mauskoordinaten "verschoben" wird. Sobald das Image die Grenzen des Panel1 überschreitet, wird ein SubImage des BufferedImage mit dem "fehlenden" Teil erstellt und auf Panel2 angezeigt. Wenn das Image vollständig im Panel2 ist, dachte ich mir, übergebe ich das Image dem Panel2 und lösche es aus Panel1, setze das Flag im Panel1 zurück, um den MotionListener zu deaktivieren und rufe die Methode
Code:
activateMotionListener(Image image)
Das Problem ist aber nun, Panel2 hat quasi niemals mitbekommen, dass die Maustaste gedrückt wurde, da dies in Panel1 geschah, wodurch mir keine Koordinaten über das MouseEvent von mouseDragged(...) übergeben werden.
Wie kann ich dem Panel2 klar machen, dass die Maus gedrückt ist ?