tschanne: Jbuilder XYLayout

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?

  1. 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

    1. 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??

      1. 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

        1. 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?

          1. 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