Portál AbcLinuxu, 15. prosince 2025 22:27
Takže, než se zeptám na stackoverflow, dávám sem:
Řeším takový problém s resize okna v javafx - okno obsahuje SplitPane a v něm dva AnchorPane, jeden z nich má omezení na šířku (obr 1).
Pokud posouvám SplitPane, nedovolí mi zmenšit šířku pod limit nastavený u toho jednoho AnchorPane (obr 2). Avšak zmenšením celého okna je možné limit překonat a pokud se tak stane, objeví se divné odsazení od okraje AnchorPane, vypadá to jako chyba (obr 3).
Co dělám špatně? Níže je úplně jednoduchý fxml dokument, kde to lze pozorovat - stačí otevřít ve SceneBuilderu a dát náhled CTRL+P a šoupak splitem a měnit vleikost okna. Zdá se, že to je specialita SplitPane, v případě jiného kontejneru se mi to neděje. Chci umožnit, aby si uživatel mohl upravit velikost prvků pomocí splitu ale i velikost okna... >:(
Díky za popostrčení :)
No je pravda, že jsem byl trochu v zajetí Scene Builder, kde tu minimální šíři okna v preview nastavit ani nemohu a tak mě ani nepadalo, že to je možná to správné řešení!
Tedy:
Nastavit minimální šíři celého okna rovnou součtu všech minimálních šíří split panelů uvnitř. Pak se chyba neprojeví, což jsem právě vyzkoušel.
Ten layout vypadá pochopitelně složitěji než v tom samplu, je tam více vnořených split panelů. Hledám vhodný přístup k chování aplikace na malých displejích - všechny podstatné prvky mají být viditelné bez rolování. Při použití split panelů by si mohl uživatel velikosti prvků ručně upravit. Jednoduchý, ale srozumitelný přístup. Nebo mít někde v preferencích připravené profily s rozměrem prvků pro různé velikosti displeje. Případně jestli tuto funkčnost neumí nějaká pokročilá dokovací knihovna out-of-the-box.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.