Marc: GridBagArray Eigenheiten

Hallo Forum

Ich hoffe, ich erreiche hiermit ein paar Java-GUI-designer unter euch. Ich habe ein kleines Problem mit dem GridBagLayout-Manager.
Ich fülle ein JPanel mit Buttons,labels etc. und verwende innerhalb des Panels den GridBagLayout-Manager und füge das panel einem JTabbedPane hinzu, dies ebenfalls unter Verwendung dieses Managers. Nun ignorieren meine Elemente (JButton z.B.) die setPreferredSize()-Methode. Komischerweise beim maximieren des Fensters übernehmen sie die von mir gewünschte grösse...

Ich suche grundsätzliche tips. Ich hab leider z.Z. kein codeausschnitt verfügbar...

Gruss, Marc

  1. hi

    oft klappt es wenn du die Methode setPrefferedSize() aufrufst bevor du die Elemente auf dem Panel anordnest.

    tip:

    ich mache es meistens so, das ich Panels, in denen die Elemente exact angeordnet werden sollen, folgenermaßen gestalte:

    myPanel.setLayout(null);
     myElement.setBounds(x, y, w, h);
     myPanel.add(myElement);

    ps: setBounds geht nur wenn der Manager auf null gesetzt wurde

    bye

    1. Hallo

      Danke schon mal für die Tips!

      oft klappt es wenn du die Methode setPrefferedSize() aufrufst bevor du die Elemente auf dem Panel anordnest.

      Ich probier das mal. Leider kann ich mein Layout nicht mehr allzu stark umformen, da der Abgabetermin näher rückt. Ich habe in meinem Projekt an die 30 Fenster, die so gestaltet sind. Überall dort, wo dieses eine fixe grösse hat, also nicht resizable ist, ist das ändern der Komponenten-Grössen kein problem. Nur beim Hauptfenster im JTabbedPane ist das Problem aufgetaucht. Muss ich allenfalls dem JTabbedPane ein anderer LayoutManager zuordnen und innerhalb vom Panel alles beibehalten?
      Habt ihr weitere Vorschläge?

      Danke, Marc

  2. hi!

    Ich hoffe, ich erreiche hiermit ein paar Java-GUI-designer unter
    euch. Ich habe ein kleines Problem mit dem GridBagLayout-Manager.

    Aus "Thinking in Java" von Bruce Eckel:

    === cut ===
    The GridBagLayout provides you with tremendous control in deciding
    exactly how the regions of your window will lay themselves out and
    reformat themselves when the window is resized. However, it’s also
    the most complicated layout manager, and quite difficult to
    understand. It is intended primarily for automatic code generation by
    a GUI builder (good GUI builders will use GridBagLayout instead of
    absolute placement). If your design is so complicated that you feel
    you need to use GridBagLayout, then you should be using a GUI builder
    tool to generate that design.
    === cut ===

    Mein Tipp: GridBagLayout kicken und alles mit BoxLayout und den
    anderen Layout-Managern machen. Damit spart man sich nach meiner
    Erfahrung eine Menge Ärger.

    bye, Frank!