Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Jan Rudolf
Člen
Avatar
Jan Rudolf:7.6.2015 19:39

Ahoj
Poradil by mi někdo prosím jak bych měl v FXML aplikaci udělat KeyListener a jak zjistit hodnotu stisknuté klávesy???
Prošel jsem web, ale z žádného článku jsem nebyl moudřejší...

 
Odpovědět 7.6.2015 19:39
Avatar
Odpovídá na Jan Rudolf
Petr Štechmüller:7.6.2015 21:01

Ahoj,
Každý ovládací prvek v JavaFX je potomek třídy Node, který má možnost nastavit různé listenery. Takže pokud chceš KeyListener ve FXML, tak na místě, kde definuješ ovládací prvek (TextField, ListView...) napíšeš onKeyPressed="". Raději to ukážu na příkladu:

<VBox prefHeight="400.0" prefWidth="600.0"
      xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
        fx:controller="nazevTridyKontroleru">
    <!--Tady definuji TextFiel a k němu keyListener-->
    <TextField onKeyPressed="nazevMetodyVKontroleruKteraReagujeNaStiskKlavesy"/>
</VBox>

Druhá možnost je definovat KeyListener pomocí API. Vytvoříš instanci daného ovládacího prvku a pomocí metody setOnKeyPressed() nastavíš, co se má stát při stisku klávesy. Opět příklad:

TextField textField = new TextField();
textField.setOnKeyPressed(event -> System.out.println(event.getCode()));

Snad jsem Ti pomohl.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 7.6.2015 21:01
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Jan Rudolf
Člen
Avatar
Odpovídá na Petr Štechmüller
Jan Rudolf:19.6.2015 21:40

To je ono, díky 8-)

 
Nahoru Odpovědět 19.6.2015 21:40
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.