2013-02-19 9 views
6

के साथ फ़ोकस करके काम करता है मैं अपने टेक्स्टफील्ड में पूरा टेक्स्ट चुनने के लिए selectAll() का उपयोग करता हूं लेकिन यह तब काम करता है जब फोकस कुंजीपटल (टैब की तरह) से आता है।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 und literPreis मेरी textfields

+0

यह एक बग की तरह लग रहा है, यहाँ http://javafx-jira.kenai.com/ रिपोर्ट करें सुरक्षित/डैशबोर्ड.जेएसपीए – 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

सोनाजा, क्या आपने इसके बारे में कोई मुद्दा दर्ज किया था? –

+0

अभी तक नहीं। जल्द ही करूँगा – Sonja