Jbuilder XYLayout
tschanne
- java
Tag zusammen
Ich hab bis anhin den JBuilder benutzt, und der hatte ein von Borland integriertes XYLayout zur verfügung gestellt. nun habe ich zu Eclipse gewechselt und möchte ein in JBuilder erstelltes Projekt übernehmen.
Allerdings ist das XYLayout dem eclipse nicht bekannt. gibts eine möglichkeit dies zu definieren, oder eine alternative?
Hallo,
Allerdings ist das XYLayout dem eclipse nicht bekannt. gibts eine möglichkeit dies zu definieren, oder eine alternative?
Das Ding klingt sehr stark nach dem NULL-Layout. Komponenten werden
absolut positioniert, und bewegen sich beim Ändern der Fenster/Komponenten-
Größe nicht mit.
Das ist eine äußerst schlechte Idee. Ein Dialog sollte immer einen
flexiblen Layoutmanager verwenden. Schon alleine wenn der Benutzer die
Standard-Schriftgröße verändert oder nur eine andere Standard-Schriftart
im System eingestellt wird, können Beschriftungen nicht mehr passen,
sofern sich das Layout nicht automatisch anpassen kann. (Das kann weder
das XYLayout noch das NULL-Layout.)
Du könntest schauen, ob du das XYLayout im Source irgendwo findest.
Wenn die Lizenzbedingungen nicht dagegen sprechen, kannst du es ja
in dein Projekt mit einbinden.
Ansonsten kannst du auch genausogut auf das NULL-Layout wechseln. Da
ist dann zwar Nacharbeit erforderlich, so groß wird dein Layout aber
ja wohl nicht sein.
Eigentlich würde ich dir aber sowohl vom NULL-Layout wie auch vom
XYLayout aus genanntne Gründen abraten. Verwende stattdessen einen
LayoutManager, z.B. den GridBagLayout. Der ist zwar kompliziert, dafür
aber sehr flexibel.
Schau dir mal den GUI-Editor von Eclipse an, den du unter dieser
URL findest: http://www.eclipse.org/vep/
Der ist zwar auch nicht perfekt, sollte dir aber zumindest die komplexe
Programmierung des GridBagLayout ersparen.
Gruß
Slyh
hi
danke für die antwort
das problem ist nur: ich hab das projekt bereits fertig. möchte ides aber nun unter eclipse starten, und das geht nicht weil eclipse das xylayout nicht bekannt ist (xylayout ist nicht null-layout)
ich müsste alles in GridBagLayout ändern, aber kenne mich damit überhaupt nicht aus
--> xylayout: new XYConstraints(390, 50, 120, 20) (abstand links, abstand oben, länge, breite)
wie würde ich das jetzt in GridBagLayout definieren??
Hallo,
das problem ist nur: ich hab das projekt bereits fertig. möchte ides aber nun unter eclipse starten, und das geht nicht weil eclipse das xylayout nicht bekannt ist (xylayout ist nicht null-layout)
ich müsste alles in GridBagLayout ändern, aber kenne mich damit überhaupt nicht aus
--> xylayout: new XYConstraints(390, 50, 120, 20) (abstand links, abstand oben, länge, breite)
wie würde ich das jetzt in GridBagLayout definieren??
Komplizierter. :-)
(So direkt könntest du das auch gar nicht übersetzen. Du müßtest dir
vorher schon exzessiv Gedanken über das Vorgehen machen.)
Das obige Konstrukt kriegst du hingegen ganz einfach ins NULL-Layout
übersetzt.
XYLayout: XYConstraints(390, 50, 120, 20)
NULL-Layout: component.setBounds(390, 50, 120, 20)
Wobei "component" deine Komponente, also z.B. ein Label oder ein
Textfeld, ist. Das machst du natürlich für alle Komponenten so.
Als LayoutManager der Parent-Komponente setzt du "null", daher auch
der Name NULL-Layout. (NULL-Layout heißt einfach, daß kein Layoutmanager
verwendet werden soll, und stattdessen alle Komponenten auf die oben
genannte Weise absolut und fest positioniert werden.)
Gruß
Slyh
Ok, Vielen Dank.
Meine Fenster sind von der Grösse her ncht veränderbar, nur von der position , von daher könnte ich ja null-layout verwenden oder?
Hallo,
Meine Fenster sind von der Grösse her ncht veränderbar, nur von der position , von daher könnte ich ja null-layout verwenden oder?
Naja, wie geschrieben, wenn die Standard-Schriftgröße auf einem System
anders eingestellt ist (z.B. auf 150%), passen die Texte evtl. nicht
mehr in die Buttons etc.
Auch wenn sich mal ein Look&Feel ändert -- so wie jetzt das Metal-L&F
von JDK 1.4 nach JDK 1.5 -- könnte es zu Problemen kommen.
Es lassen sich verschiedene Beispiele konstruieren, die ein festes
Layout zerschießen.
(Es hat schon einen Grund, daß praktisch alle Entwickler trotz des
erheblich höheren Aufwandes Layoutmanager zur Positionierung der Dialog-
Komponenten verwenden.)
Gruß
Slyh