Hallo.
Ich arbeite im Moment an einem Programm mit einem Block-Editor.
Dieser Block-Editor ist ein Editor in dem man mit der Maus sich ein kleines Programm zusammen
Stecken kann. (so wie in der "Programmiersprache" Scratch: scratch.mit.edu)
Jeder Block ist ein JComponent in einem "JBlockEditor" JPanel. (eine abgeleitete Klasse)
Das Problem ist, dass man die Blöcke auch aus ihrem "JBlockEditor" ziehen, und in einem anderen
"JBlockEditor" ablegen können soll. (Drag und Drop)
Ich habe dies versucht so umzusetzen:
Meine Main-GUI mit den JBlockEditoren lege ich in einem JPanel "root" ab.
Wenn ein Block angeklickt wird entferne ich ihn von seinem Container und füge ihn zu "root" hinzu (sodass er ganz oben liegt).
Dann habe ich versucht "root" so zu manipulieren, dass er die Mouse-Motion Evente auffängt und nicht an die Main-GUI weitergibt, sondern stattdessen den Block mit dem Event (über die Main-GUI) drüber zu verschieben.
Dies hat aber nicht gescheit geklappt: Der Block hat sich manchmal gar nicht bewegt und manchmal nur sehr sehr langsam.
Nun die Frage:
Gibt es da eine bessere Möglichkeit?
Oder habe ich bei meinem Ansatz irgendwas falsch gemacht?
----
Ich habe im Anhang mal das Programm als Java-Archiv.
Wer will kann es sich ja mal Ansehen wie es ohne dem "Drag and Drop" aussieht.
Vielleicht wird dann klarer was ich mit dem "Drag and Drop" meine.
Im Moment kann man nämlich aus dem linken JBlockEditor keine Blöcke in den rechten ziehen,
sondern muss drauf klicken. (was auf Dauer keine schöne Lösung ist).
Grüße,
HalloWelt_
Ich arbeite im Moment an einem Programm mit einem Block-Editor.
Dieser Block-Editor ist ein Editor in dem man mit der Maus sich ein kleines Programm zusammen
Stecken kann. (so wie in der "Programmiersprache" Scratch: scratch.mit.edu)
Jeder Block ist ein JComponent in einem "JBlockEditor" JPanel. (eine abgeleitete Klasse)
Das Problem ist, dass man die Blöcke auch aus ihrem "JBlockEditor" ziehen, und in einem anderen
"JBlockEditor" ablegen können soll. (Drag und Drop)
Ich habe dies versucht so umzusetzen:
Meine Main-GUI mit den JBlockEditoren lege ich in einem JPanel "root" ab.
Wenn ein Block angeklickt wird entferne ich ihn von seinem Container und füge ihn zu "root" hinzu (sodass er ganz oben liegt).
Dann habe ich versucht "root" so zu manipulieren, dass er die Mouse-Motion Evente auffängt und nicht an die Main-GUI weitergibt, sondern stattdessen den Block mit dem Event (über die Main-GUI) drüber zu verschieben.
Dies hat aber nicht gescheit geklappt: Der Block hat sich manchmal gar nicht bewegt und manchmal nur sehr sehr langsam.
Nun die Frage:
Gibt es da eine bessere Möglichkeit?
Oder habe ich bei meinem Ansatz irgendwas falsch gemacht?
----
Ich habe im Anhang mal das Programm als Java-Archiv.
Wer will kann es sich ja mal Ansehen wie es ohne dem "Drag and Drop" aussieht.
Vielleicht wird dann klarer was ich mit dem "Drag and Drop" meine.
Im Moment kann man nämlich aus dem linken JBlockEditor keine Blöcke in den rechten ziehen,
sondern muss drauf klicken. (was auf Dauer keine schöne Lösung ist).
Grüße,
HalloWelt_