2013-02-19 14 views
6

uso selectAll() per selezionare l'intero testo nel mio campo di testo ma funziona solo quando lo stato attivo viene dalla tastiera (come Tab).JavaFx: Method selectAll() funziona solo tramite focus con tastiera

Se faccio clic con il mouse nel campo di testo, seleziona il testo solo per un brevissimo istante. Ma deve funzionare come con l'attenzione che viene dalla tastiera.

flaschenPreis.focusedProperty().addListener(new ChangeListener<Boolean>() { 
     public void changed(ObservableValue ov, Boolean t, Boolean t1) { 


      if (flaschenPreis.isFocused() && 
        !flaschenPreis.getText().isEmpty()) { 
       flaschenPreis.selectAll(); 
      }    
     } 
    }); 


    literPreis.focusedProperty().addListener(new ChangeListener() { 
     public void changed(ObservableValue ov, Object t, Object t1) { 

      if (literPreis.isFocused() && 
        !literPreis.getText().isEmpty()) { 
       literPreis.selectAll(); 
      } 
     } 
    }); 

flaschenPreis und literPreis sono i miei campi di testo

+0

appare come un insetto, si prega di segnalare qui http://javafx-jira.kenai.com/ sicuro/Dashboard.jspa – invariant

risposta

13

Questo trucco vi aiuterà a:

final TextField tf = new TextField("Text"); 
    tf.focusedProperty().addListener(new ChangeListener<Boolean>() { 
     @Override 
     public void changed(ObservableValue ov, Boolean t, Boolean t1) { 

      Platform.runLater(new Runnable() { 
       @Override 
       public void run() { 
        if (tf.isFocused() && !tf.getText().isEmpty()) { 
         tf.selectAll(); 
        } 
       } 
      }); 
     } 
    }); 
+0

Wow! Funziona!! Eccezionale!!! Questa parte è così importante per il programma in cui sto lavorando. Grazie mille!! Apprezzo molto il vostro aiuto. – Sonja

+1

Sonja, hai presentato un problema al riguardo? –

+0

non ancora. lo farò presto – Sonja

Problemi correlati