2013-02-19 3 views
6

J'utilise selectionAll() pour sélectionner tout le texte dans mon champ de texte, mais cela fonctionne uniquement lorsque le focus vient du clavier (comme Tab).JavaFx: Méthode selectAll() fonctionne uniquement par focus avec le clavier

Si je clique avec ma souris dans le champ de texte, il sélectionne le texte juste pour un très court moment. Mais cela doit fonctionner comme avec la mise au point qui vient du clavier.

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 sont mes textfields

+0

il ressemble à un bug, s'il vous plaît signaler ici http://javafx-jira.kenai.com/ secure/Dashboard.jspa – invariant

Répondre

13

Cette astuce va vous aider:

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! Ça marche!! Impressionnant!!! Cette partie est si importante pour le programme sur lequel je travaille. Merci beaucoup!! J'apprécie vraiment votre aide. – Sonja

+1

Sonja, avez-vous fait un problème à ce sujet? –

+0

pas encore. le fera bientôt – Sonja

Questions connexes