Diskuze: JavaFX FXML formulář
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, k první otázce: můžeš přidat onKeyPressed listener, který nabinduješ na metodu handleVyber. Tím zajistíš, že se bude vykonávat při každém zmáčknutí klávesy.
Atrament: To mi nefunguje. Podle toho, co jsem četl na Stackowerflow to funguje, pokud jsou na vyskakovacím okně stejné prvky bez dalších kontejnerů, nebo pokud jsou stejné prvky ve stejných typech kontejnerů (a možná na stejné úrovni). V dotazu jsem strukturu neuvedl, mám to trochu složitější - VBox, GirdPane a pak teprve Labely a ComboBoxy. Jednotit se mi to nehodí kvůli desingu. Dělá se to nějak přez on Key pressed, to testuje stisknutí Tab a tím se spustí metoda on Action, která nastaví jako aktivní prvek "další", ale jak přesně, to jsem nepochopil.
Petr Štechmüller: Nejsem si jistý, jestli to dělám správně, když
přiřadím do pole On Key Pressed metodu handleVyber, vyhodí to vyjímku:
IllegalArgumentException: argument type mismatch
Jasný, to znamená, ze se předává špatný parametr te funkci handleVyber. Takže to můžeš udělat tak, ze udalost onKeyPressed nabindujes na jinou metodu, ze které budeš jednoduše volat už tu správnou metodu.
To je dobře, že Ti to už funguje.
Jenom poznámka na okraj. Z tvého prvního příspěvku je vidět ne moc
ideální návrh kódu. Ty vlastně v kontroleru vykonáváš nějakou logickou
činnost, což není úplně výhodné. Zkus se podívat po
bidirectional bindingu, neboli obousměrnému bindování
hodnot. Jedná se o to, že jednotlivé položky, jako je jméno, rasa,
povolání nabinduješ na property nějakého modelu. Možná to zní
složitě, ale pokud by jsi měl o to zájem, tak se koukni sem: https://github.com/stechy1/dracak. Připravil jsem
jednoduchou ukázku implementace tvého problému pomocí binding property.
Možná je tam trochu více kódu, ale na druhou stranu by to mělo být
robustnější řešení.
Zobrazeno 10 zpráv z 10.