Portál AbcLinuxu, 8. května 2025 06:39

Dotaz: JavaFX - fxml SplitPane vs. AnchorPane při zmenšení okna

11.6.2019 13:25 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
JavaFX - fxml SplitPane vs. AnchorPane při zmenšení okna
Přečteno: 240×
Odpovědět | Admin
Příloha:
Dobrý den všem,

dával jsem už dotaz na root, ale nikdo neodpovědl a pan Jirsák má asi dovolenou :-)

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í :)
-- OldFrog
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Max avatar 12.6.2019 13:08 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: JavaFX - fxml SplitPane vs. AnchorPane při zmenšení okna
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen takový hloupý dotaz, proč tedy nenastavíš minimální velikost pro okno (minHeight/minWidth)?
Zdar Max
Měl jsem sen ... :(
12.6.2019 20:21 Jardík
Rozbalit Rozbalit vše Re: JavaFX - fxml SplitPane vs. AnchorPane při zmenšení okna
To nedělej. Tyto věci jako "musí to mít 120 pixelů" a tady odsazení 3 pixely, toho mám plno v zaměstnání a jsou to věci, se kterými nesouhlasím. Fixní velikost nemá mít nic, všechno se má dobře škálovat. Děláme v Qt a to jeho znásilňování, to je hrozné. Další věci jako "tohle musí mít světle modré pozadí", tohle žlutě podbarvený řádek, ... a pak si uživatel změní systémové téma, nebo DPI a všechno se rozsype, nebo skončíte s bílým písmem na bílém pozadí (protože se změní jen některé barvičky, ale zbytek zůstanou systémové). A nebo s textem, který se nevejde do widgetu, protože má 120 pixelů ...

Na otázku tazatele ale neodpovím, nevím.
12.6.2019 20:22 Jardík
Rozbalit Rozbalit vše Re: JavaFX - fxml SplitPane vs. AnchorPane při zmenšení okna
A jinak, velikost okna je jen hint pro window manager, vůbec ho nemusí respektovat a aplikace by se měla umět přizpůsobit libovolné velikosti okna.
Max avatar 12.6.2019 21:24 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: JavaFX - fxml SplitPane vs. AnchorPane při zmenšení okna
Asi to špatně chápeš, nikdo nemluví o fixní velikosti. Pokud si sám nastavuje minimální velikost pro nějaký panel, tak nevidím důvod si zároveň nastavit minimální (né fixní) velikost i pro okno nad tím.
Zdar Max
Měl jsem sen ... :(
13.6.2019 14:43 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: JavaFX - fxml SplitPane vs. AnchorPane při zmenšení okna
:-) 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.
-- OldFrog

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.