"gestörte" Layoutmanager

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Vorab: ich find das LayoutManager Konzept von Java(swing) nicht besonders ausgefeilt. Da ich es trotzdem verwenden werde, eine Frage:

    # der BoxLayout - Manager versucht alle Komponenten auf 'optimale' Größe zu Resizen. Jetzt ist z.B. eine Eingabefeld für eine Zahl so groß wie das Textfeld in das ich grad schreibe ? wie kann ich das verhindern ? Ist SetMaximum / SetMinimum die gesuchte Lösung ?

    # Im FlowLayout wiederum wird alles möglichst knapp angeordnet. Problem: Wenn ich eine ScrollPane als Container verwende, stehen alle Elemente links nebeneinander. Wie verhindert mand das ?

    # lbnl: Warum kann ich in der init-Phase nicht die Größe der einzelnen Komponenten abrufen (wieder mit BoxLayout und ScrollPane).

    Freu mich falls jemand weiter weiß

    weiterhin schöne Ferien

  • Zitat

    Original geschrieben von shabby
    # der BoxLayout - Manager versucht alle Komponenten auf 'optimale' Größe zu Resizen. Jetzt ist z.B. eine Eingabefeld für eine Zahl so groß wie das Textfeld in das ich grad schreibe ? wie kann ich das verhindern ? Ist SetMaximum / SetMinimum die gesuchte Lösung ?


    ich weiss nicht ganz was du genau meinst, aber setPreferredSize(Dimension dim) ist in vielen fällen dein freund.
    Beim BoxLayout bringts wahrscheinlich nicht viel, aber du kannst deinen textfeldern auch im constructor einen int mitgeben, der angibt wieviel zeichen das ding gross sein soll.

    Zitat


    # Im FlowLayout wiederum wird alles möglichst knapp angeordnet. Problem: Wenn ich eine ScrollPane als Container verwende, stehen alle Elemente links nebeneinander. Wie verhindert mand das ?

    FlowLayout ist auch dafür gebaut. du kannst die sachen nur links, mittig oder rechts ausrichten glaub ich.

    Zitat


    # lbnl: Warum kann ich in der init-Phase nicht die Größe der einzelnen Komponenten abrufen

    zeig mal den code dafür. du musst aber aufpassen: soweit ich weiss werden die componenten erst richtig gelayoutet wenn alles bekannt ist was reinkommt und du den container (frame wahrscheinlich) sichtbar machst.

    meine erfahrung: ich fahr mit BorderLayout meistens sehr gut. FlowLayout dann für eine reihe buttons oder ähnliches, und gridlayout wenn du viele labels mit textfeldern anzeigen musst.

    hoffe, das hilft dir weiter.

    .tscherno

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!