2013-02-19 4 views
6

Ich benutze selectionAll(), um den gesamten Text in meinem Textfeld auszuwählen, aber es funktioniert nur, wenn der Fokus von der Tastatur kommt (wie Tab).JavaFx: Methode selectAll() funktioniert nur mit Fokus mit Tastatur

Wenn ich mit der Maus in das Textfeld klicke, wird der Text nur für einen sehr kurzen Moment ausgewählt. Aber es muss funktionieren wie mit dem Fokus, der von der Tastatur kommt.

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 sind meine Textfelder

+0

es wie ein Fehler aussieht, bitte hier melden http://javafx-jira.kenai.com/ secure/Dashboard.jspa – invariant

Antwort

13

Dieser Trick wird Ihnen helfen:

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! Es klappt!! Genial!!! Dieser Teil ist so wichtig für das Programm, an dem gearbeitet wird. Ich danke dir sehr!! Ich schätze deine Hilfe sehr. – Sonja

+1

Sonja, hast du darüber ein Problem gemacht? –

+0

noch nicht. werde es bald tun – Sonja