# jFrame verschieben verhindern



## javafan123 (30. Jul 2012)

Hallo,

Habe 2 jFrames. jFrame 1 öffnet jFrame 2. jFrame 2 öffnet sich auf dem Bildschirm genau neben jFrame1. Jetzt möchte ich das es nicht mehr zu verschieben ist, sodass die beiden immer nebeneinander bleiben, allerdings finde ich dafür keine (schöne) Lösung. Wenn jFrame 1 verschoben wird greift das ComponentMoved Event und verschiebt jFrame 2 automatisch wieder an die Position neben jFrame 1.

Wenn allerdings jFrame 2 verschoben wird und automatisch an die Stelle neben jFrame 1 gesetzt wird während das Fenster verschoben wird "springt" das Fenster immer zwischen dem Mauszeiger und der "richtigen" Position hin und her.

Gibt es also zum Verhindern des Verschiebens eines Fensters eine andere Möglichkeit als mithilfe des ComponentMoved Events?

Fand leider nur einen Thread von 2006 und denke seither kann sich viel getan haben, vielleicht gibts ja mittlerweile etwas. 

lg


----------



## c_sidi90 (30. Jul 2012)

Also ein Programm welches sich nicht verschieben lässt find ich ja nicht gerade sehr benutzerfreundlich, ich würde sowas direkt wieder deinstallieren bzw. löschen. Aber naja.

Habe sowas noch nie probiert oder gewollt, aber du könntest beim Start deines Programmes die Location speichern z.B. in Point.x Point.y und die ComponentMoved überschreiben, das beim Event der Frame an diese Point-Position gesetzt wird.


----------



## Schandro (30. Jul 2012)

Wozu ein zweites window öffnen, wenn du dann die ganzen Features wie verschieben und maximieren wieder deaktivieren musst? Warum machst du nicht einfach alles in jFrame1?


----------



## javafan123 (30. Jul 2012)

Das habe ich wohl etwas schlecht erklärt. Fenster 2 wird automatisch direkt neben Fenster 1 geöffnet und _mit_ Fenster 1 verschoben. Immer wenn Fenster 1 verschoben wird setzt sich Fenster 2 direkt daneben. Fenster 2 ist zur Eingabe von versch. Variablen da, Name, etc.

Da Fenster 2 sowieso immer in einer schönen Position neben Fenster 1 sitzt (und seperat geschlossen werden kann wenn nicht benötigt) braucht es auch nicht verschoben werden.

Da es keine einfach Methode für das gibt ist es eh hinfällig, so wichtig ist es dann auch wieder nicht. 



> Habe sowas noch nie probiert oder gewollt, aber du könntest beim Start deines Programmes die Location speichern z.B. in Point.x Point.y und die ComponentMoved überschreiben, das beim Event der Frame an diese Point-Position gesetzt wird.



Das habe ich gemacht, das is die unschöne Variante weil wenn man es verschiebt, springt das Fenster zwischen Mauszeiger und "Soll"-Location hin und her.

lg


----------



## c_sidi90 (30. Jul 2012)

Ich denke mal du tust dir selbst einen gefallen wenn du mit vernünftigen LayoutManagern arbeitest und ein Internalframe oder JPanels als Subfenster für deine Variablen nutzt. Ein Dialog würd auch gehen.

Mfg


----------

