2015-04-27 15 views
6

Tôi đã tạo một ứng dụng JavaFX nơi tôi đang cập nhật nhật ký với một quy trình nền. Vì vậy, tôi đang thiết lập văn bản đăng nhập trong TextArea và thiết lập di chuyển xuống dưới bằng cách sử dụng logs.setScrollTop(Double.MAX_VALUE). nhưng scrollbar được thiết lập để hơi lên từ phía dưới. Tôi cũng đã thử TextFlow bên trong ScrollPan và thiết lập cuộn xuống dưới bằng cách sử dụng logDisplay.setVvalue(1.0). Nó cũng cho kết quả tương tự.JavaFX: Sau khi đặt văn bản trong textArea, cài đặt cuộn xuống dưới trong chuỗi riêng biệt không hoạt động

Platform.runLater(() -> { 
    logs.setText([setting log text]);//TextArea logs 
    logs.setScrollTop(Double.MAX_VALUE)); 
}); 

//For TextFlow inside ScrollPane 
Platform.runLater(() -> { 
    logs.setText([setting log text]);//Text logs 
    logDisplay.setVvalue(1.0); 
}); 

Tôi cũng đã cố gắng để chạy mã trong chủ đề riêng biệt như

new Thread() { 
    public void run(){ 
     System.out.println("called set test"); 
     logs.setText([setting log text]);//Text logs 
     logDisplay.setVvalue(1.0); 
    } 
}.start(); 

Nhưng không có gì đang làm việc :(
bạn có thể giúp tôi có gì sai trong việc này
Cảm ơn

? - Chỉnh sửa--
Dường như vấn đề là do vấn đề luồng. Giá trị thanh cuộn đang cập nhật lên giá trị văn bản trước đó. g giá trị cuộn nó không lấy giá trị mới nhất nhưng nó nhận được giá trị cũ hơn nên thanh cuộn được đặt ở cuối thông báo trước đó, chứ không phải dòng cuối cùng thực tế.

+1

Tôi đã đăng một giải pháp thực sự đơn giản [trong câu hỏi này] (http://stackoverflow.com/questions/43886613/javafx-textarea-cursor-moves-back-to-the-first-line-on-new -text/43886919 # 43886919) sử dụng 'appendText' thay vì' setText' và loại bỏ nhu cầu thiết lập dấu mũ theo cách thủ công. – DVarga

Trả lời

5

Tôi không biết vấn đề thực tế của vấn đề này, nhưng tôi đã tìm thấy giải pháp thay thế.

Tôi đang đặt vị trí của dấu mũ ở cuối văn bản sử dụng độ dài văn bản.

logs.setText(logText); 
logs.positionCaret(logText.length()); 

Nó làm việc cho tôi. :)

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