Hallo liebe Leutchens!
Ich wende mich nun mal in einem neuen Thread an euch, da das ursprüngliche Thema sich meiner Meinung nach erledigt hat. Das neue ist zwar ähnlich aber nun ja!
Vielleicht ist ja eine aktuellere Beschreibung doch mehr hilfreich.
Wer sich den alten Thread noch anschauen will um die gesamtproblematik mehr zu verstehen:
altes Thema
Nun zum eigentlichen Problem:
Ich möchte eine Component in einem Container mit der Maus bewegen.
Wenn diese Component nun aber selbst ein richtiger Container, wie z.B. ein ScrollPane oder so ist, kann ich sie ja nicht greifen, da der MouseListener natürlich nur die innenliegende Komponente (eventuell eine Table oder so) als Quelle erkennt.
Demnach kann ich dieses Element nicht verschieben.
Mein bisher einfachster Ansatz:
Aus der Component temporär ein Bild machen, dadurch werden auch alle anderen Komponenten dargestellt, und danach kann wieder alles normal dargestellt werden.
Leider habe ich das mir unerklärliche Phänomen, das wenn ich diese BildComponent verschiebe und dabei über andere Komponenten ziehe, das das Bild dann flackert (genauer gesagt werden die darunterliegende Component und das Bild abwechselnd dargestellt)
Eine vielleicht nich ganz unwichtige Info:
Das Panel welches die verschiebbaren Komponenten enthält, liegt selbst in einem LayeredPane.
wird eine Komponente ausgewählt, wird sie Kurzfristig aus dem eigentlichen Panel entfernt, auf ein durchsichtiges Panel geadded. Dann wird das durchsichtige Panel im LayeredPane nach vorne geholt, und die Komponenten sind ganz normal Sichtbar. Nach dem Loslassen, das ganze wieder andersrum.
Der Grund für zwei Panels ist, das ich das ganze innerhalb eines Layouts mache und beim Verschieben eine Vorschaukomponente dargestellt werden soll, wo die Komponente landet wenn man loslässt ( ich glaub ich musses nicht erwähnen, aber ich tus trotzdem. Würde ich es in einem Panel machen würde die Layoutaktualisierung die Komponente die man grade zieht bei jeder Bewegung flackernd wieder an den Ursprungsort zurückspringen lassen)
Was mich an dem ganzen so verwirrt: Wenn ich anstatt dem LayeredPane ein Panel, und als zweitPanel, das standard GlassPane nehme, funktionierts wunderbar flackerfrei!
Ich hoffe das jemand eine Idee hat woran das liegt!
Ich wende mich nun mal in einem neuen Thread an euch, da das ursprüngliche Thema sich meiner Meinung nach erledigt hat. Das neue ist zwar ähnlich aber nun ja!
Vielleicht ist ja eine aktuellere Beschreibung doch mehr hilfreich.
Wer sich den alten Thread noch anschauen will um die gesamtproblematik mehr zu verstehen:
altes Thema
Nun zum eigentlichen Problem:
Ich möchte eine Component in einem Container mit der Maus bewegen.
Wenn diese Component nun aber selbst ein richtiger Container, wie z.B. ein ScrollPane oder so ist, kann ich sie ja nicht greifen, da der MouseListener natürlich nur die innenliegende Komponente (eventuell eine Table oder so) als Quelle erkennt.
Demnach kann ich dieses Element nicht verschieben.
Mein bisher einfachster Ansatz:
Aus der Component temporär ein Bild machen, dadurch werden auch alle anderen Komponenten dargestellt, und danach kann wieder alles normal dargestellt werden.
Leider habe ich das mir unerklärliche Phänomen, das wenn ich diese BildComponent verschiebe und dabei über andere Komponenten ziehe, das das Bild dann flackert (genauer gesagt werden die darunterliegende Component und das Bild abwechselnd dargestellt)
Eine vielleicht nich ganz unwichtige Info:
Das Panel welches die verschiebbaren Komponenten enthält, liegt selbst in einem LayeredPane.
wird eine Komponente ausgewählt, wird sie Kurzfristig aus dem eigentlichen Panel entfernt, auf ein durchsichtiges Panel geadded. Dann wird das durchsichtige Panel im LayeredPane nach vorne geholt, und die Komponenten sind ganz normal Sichtbar. Nach dem Loslassen, das ganze wieder andersrum.
Der Grund für zwei Panels ist, das ich das ganze innerhalb eines Layouts mache und beim Verschieben eine Vorschaukomponente dargestellt werden soll, wo die Komponente landet wenn man loslässt ( ich glaub ich musses nicht erwähnen, aber ich tus trotzdem. Würde ich es in einem Panel machen würde die Layoutaktualisierung die Komponente die man grade zieht bei jeder Bewegung flackernd wieder an den Ursprungsort zurückspringen lassen)
Was mich an dem ganzen so verwirrt: Wenn ich anstatt dem LayeredPane ein Panel, und als zweitPanel, das standard GlassPane nehme, funktionierts wunderbar flackerfrei!
Ich hoffe das jemand eine Idee hat woran das liegt!