2013-02-19 6 views
6

私はテキストフィールド内のテキスト全体を選択するのにselectionAll()を使用しますが、フォーカスがキーボードなどから来た場合(Tabなど)にのみ機能します。JavaFx:メソッドselectAll()はキーボードのフォーカスのみで動作します

テキストフィールドでマウスをクリックすると、非常に短い瞬間だけテキストが選択されます。しかし、それはキーボードから来るフォーカスのように動作しなければならない。

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ウントliterPreisこのトリックがお手伝いします私のテキストフィールド

+0

それはバグのように、ここに報告してくださいhttp://javafx-jira.kenai.com/に見えますsecure/Dashboard.jspa – invariant

答えて

13

です:

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

うわー!できます!!驚くばかり!!!この部分は、作業中のプログラマにとって非常に重要です。どうもありがとうございます!!私は本当にあなたの助けに感謝します。 – Sonja

+1

Sonja、あなたはそれについて問題を提出しましたか? –

+0

まだありません。すぐにそれを行います – Sonja

関連する問題