Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52

    Cambio focus jTextField

    Ciao ragazzi, abbiamo un problema!!
    Stiamo lavorando ad un progetto che richiede la compilazione di delle ricette mediche. Il problema è che bisognerebbe creare un'applicazione grafica che permetta di inserire all'interno dei campi della ricetta i valori richiesti. Bisogna quindi compilare ogni singolo rettangolino con un solo carattere.
    Dopo un bel pò di prove e ricerche siamo riusciti a capire come verificare la scrittura di un singolo carattere:

    codice:
    private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
        System.out.println ("GG");
        //Serve solo per vedere quando viene premuto un tasto....
    }
    Ora però dovremmo riuscire a passare da un textfield a quello successivo...e qui non sappiamo come fare...Speriamo di esserci spiegati al meglio...

    Qualcuno ha qualche idea? Grazie mille in anticipo, ciao!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Cambio focus jTextField

    Originariamente inviato da ziz
    Bisogna quindi compilare ogni singolo rettangolino con un solo carattere.
    Un JTextField per default non ha alcun limite nel numero di caratteri. Se si vuole porre un limite o fare altre operazioni particolari (es. filtrare solo determinati caratteri), la soluzione più semplice e valida è quella di estendere PlainDocument. Avevo fatto un esempio qui.

    Originariamente inviato da ziz
    Ora però dovremmo riuscire a passare da un textfield a quello successivo
    Dipende quale è la condizione che deve causare il trasferimento del focus. Se si limita il numero di caratteri come ho spiegato sopra e, detto in generale, si vuole che appena si raggiunge il limite, il focus venga trasferito, si può fare tranquillamente con una piccola modifica nel codice che ho indicato in quel mio post.

    Se si vuole trasferire il focus al componente successivo (proprio come se si premesse il "TAB"), si fa così:

    codice:
    KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
    manager.focusNextComponent();
    Se non si vuole limitare il numero di caratteri (quindi non si crea un proprio apposito Document), si può sempre in ogni caso registrare un DocumentListener al Document associato al JTextField. Quando si riceve notifica che "qualcosa" è cambiato nel document, si può controllare se va bene e quindi si fa qualcos'altro (es. se il documento ha 1 carattere, si trasferisce il focus).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52
    Come al solito sei stato molto più che utilissimo!! E' esattamente tutto ciò che mi serviva!! Davvero grazieee!!!
    A presto, ciaoooo!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.