2013-02-19 43 views
6

tôi sử dụng selectionAll() để chọn toàn bộ văn bản trong textfield nhưng nó chỉ hoạt động khi lấy nét từ bàn phím (như Tab).JavaFx: Phương thức selectAll() chỉ hoạt động bằng cách lấy tiêu điểm bằng bàn phím

Nếu tôi nhấp bằng chuột trong trường văn bản, nó sẽ chọn văn bản chỉ trong một khoảnh khắc rất ngắn. Nhưng nó phải hoạt động giống như trọng tâm đến từ bàn phím.

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 là textfields tôi

+0

nó trông giống như một lỗi, xin vui lòng báo cáo ở đây http://javafx-jira.kenai.com/ an toàn/Dashboard.jspa – invariant

Trả lời

13

Thủ thuật này sẽ giúp bạn:

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

Thật tuyệt vời! Nó hoạt động !! Tuyệt vời!!! Phần này là rất quan trọng đối với chương trình im làm việc trên. Cảm ơn bạn rất nhiều!! Tôi thực sự đánh giá cao sự giúp đỡ của bạn. – Sonja

+1

Sonja, bạn đã gửi một vấn đề về điều đó? –

+0

chưa. sẽ sớm làm được – Sonja

Các vấn đề liên quan