NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!

Diskuze: Dosazení čísla do označeného spinneru

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Philippazdera:8.12.2013 16:42

Zdravím,
potřeboval bych poradit. Mám 4 spinnery, které používám k výpočtům, ale rád bych k tomu přidal numerickou klávesnici na obrazovce.
Jakým způsobem lze udělat, aby button1 dal jedničku do spinneru, který je označený kurzorem.

Díky za pomoc.

 
Odpovědět
8.12.2013 16:42
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na Philippazdera
Hartrik:9.12.2013 16:44

Vytvoříš si proměnnou objektu JSpinner, která bude obsahovat instanci posledního označeného spinneru. Proměnnou budeš aktualizovat tím, že přidáš listener na focus - http://docs.oracle.com/…istener.html (nebo lépe http://docs.oracle.com/…Adapter.html). Zajímat tě budě metoda focusGained.

Na tlačítko také přidáš příslušný listener a budeš přistupovat k proměnné spinneru...

 
Nahoru Odpovědět
9.12.2013 16:44
Avatar
Odpovídá na Hartrik
Philippazdera:12.12.2013 20:56

Díky za odpověď, nicméně funguje mi to u TextFieldu, ale u Spinneru ne. Nejspíš to mám špatně napsané:

N1.addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent e) {
            Cal=1;
            }

            @Override
            public void focusLost(FocusEvent e) {
            Cal=0;
            }
        });

Můžeš mi prozradit, co dělám špatně? Díky

Editováno 12.12.2013 20:56
 
Nahoru Odpovědět
12.12.2013 20:56
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na Philippazdera
Hartrik:13.12.2013 14:32

Asi jsi si pořádně nepřečetl, co jsem napsal.

private JSpinner spinner1 = ...
private JSpinner spinner2 = ...
private JSpinner spinner3 = ...

private JSpinner last = null;

...

final FocusAdapter listener = new FocusAdapter() {
    @Override
    public void focusGained(FocusEvent e) {
        last = (JSpinner) e.getSource();
    }
};

spinner1.addFocusListener(listener);
spinner2.addFocusListener(listener);
spinner3.addFocusListener(listener);

Teď budeš mát v proměnné last vždy poslední označený spinner.

 
Nahoru Odpovědět
13.12.2013 14:32
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 4 zpráv z 4.