Automatische Skalierung in Swing GUI

Hallo !

Ich bin neu hier im Forum und beschäftige mich gerade ein wenig mit Java Swing. Ich habe dort eine kleine GUI selbst zusammengebaut und dort manuell einige GUI Elemente mit dem Layout Manager GroupLayout zuammengefügt.

Was mir jetzt noch fehlt ist so etwas wie eine automatische Größenskalierung sämtlicher GUI Elemente, wenn bspw. das GUI Fenster durch den Anwender verkleinert wird oder die Auflösung des Anwenders eben kleiner oder größer ist, als die, unter der ich meine Anwendung entwickelt und designt habe.

Kann ich solche Skalierung über den Layoutmanager machen? Oder muss das von mir für jedes einzelne GUI Komponente selbst zu Fuß programmiert werden?

Thanks & Greetz
Michael

hmm, ich denke du musst das selbst machen
Mir ist jetzt keine Technik bekannt mit der du das über die Manager machen kannst

Danke für die Nachricht.

Ich muss aber noch einmal direkt nachfragen: Wie kann ich so etwas überhaupt selbst machen? Ehrlich gesagt habe ich keinen Schimmer.

Thanks & Greetz
Michael

so direkt weiß ich es auch nicht
Aber meine Idee wäre die:
Bau deine UI mit Layoutmanagern ganz normal und wenn die UI skaliert werden muss laufe durch alle UI Elemente und ändere die (mindest) Größen um den Skalierungsfaktor ab. Vielleicht musst du auch die Abstände mit skalieren.

Ich bin mir nicht ganz sicher, worauf sich die Frage bezieht (und kenne mich mit dem GroupLayout auch nicht wirklich aus), aber üblicherweise verteilen die LayoutManager überflüssigen Platz “sinnvoll”, soweit das automatisch möglich ist. I.a. bedeutet dass, dass versucht wird, allen Components ihre “getPreferredSize” zu geben, bzw. die durch getMaximumSize/getMinimumSize vorgegebenen Beschränkungen einzuhalten. Was mit überflüssigem Platz gemacht wird, ist dann Sache des LayoutManagers.
Ein bißchen klingt das, als würdest du sowas suchen, was durch einige (nicht-Standard) LayoutManager gemacht wird, wo man schlicht eine prozentuale Größenverteilung angibt. (Natürlich, das geht alles auch mit einem GridBagLayout, aber das kann schon krampfig zu verwenden sein…)