2012-01-25 48 views
12

Tôi có vùng văn bản có thanh cuộn. Thường xuyên, tôi đang thêm dòng văn bản mới vào nó. Tôi muốn vùng văn bản tự động cuộn đến mục nhập thấp nhất (mục mới nhất) bất cứ khi nào một dòng mới được thêm vào. Làm thế nào tôi có thể thực hiện điều này?Tự động cuộn xuống dưới cùng của vùng văn bản

textAreaStatus = new WebTextArea(); 
scrollPane = new JScrollPane(textAreaStatus); 
textAreaStatus.setBackground(Color.black); 
textAreaStatus.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); 
+1

Liệu 'WebTextArea' mở rộng' java.awt.TextArea' hoặc 'javax.swing.JTextArea'? Xin được cụ thể trong các bài viết trong tương lai. Đó là khó khăn đủ gỡ lỗi đoạn mã trên các diễn đàn được viếng thăm bởi những người nói nhiều ngôn ngữ bản địa khác nhau, để được tự hỏi về các lớp học chính xác được sử dụng. –

Trả lời

19

Hãy nhìn vào tài sản của DefaultCaret updatePolicy: nó có thể làm những gì bạn muốn

DefaultCaret caret = (DefaultCaret) textArea.getCaret(); 
caret.setUpdatePolicy(ALWAYS_UPDATE); 

Một nice summary of options bởi Rob (@camickr)

+1

** Tôi nhận được erro trong IDE và tôi đặt DefaultCaret. đến ALWAYS_UPDATE như ** 'caret.setUpdatePolicy (DefaultCaret.ALWAYS_UPDATE);' ** tôi nên đặt mã này ở đâu? khi nào tôi nên gọi mã mà bạn đã cung cấp và ở đâu? ** – itro

+0

có vẻ không hoạt động trong java8 – poordeveloper

+0

@ZhouHuabing thú vị .. sẽ kiểm tra, cảm ơn. – kleopatra

14
textArea.setCaretPosition(textArea.getDocument().getLength()); 
+0

Mỗi khi tôi thêm văn bản vào taxArea tôi có nên gọi 'textArea.setCaretPosition (textArea.getDocument(). GetLength());'? ** Có cách nào khác để tự động thực hiện không? Có người nghe cho textArea sử dụng không? ** – itro

+1

@itro - Tại sao không thêm chức năng để thêm văn bản. Ví dụ, tôi có một chức năng để thêm văn bản vào vùng văn bản của tôi. Vấn đề đơn giản là thêm một dòng phụ vào hàm của tôi để tự động cập nhật nó. – Sh4d0wsPlyr

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