2011-01-11 99 views
7

cách mà tôi có thể thay đổi màu là do setForground(). Tuy nhiên khi có nhiều dòng mã nó làm cho tất cả mọi thứ màu xanh lá cây hoặc màu đen. Có cách nào khác hay cách giải quyết vấn đề này? Cảm ơn!Java: Làm cách nào để thay đổi màu của một dòng hoặc hàng chuỗi cụ thể trong vùng Văn bản?

int key = evt.getKeyCode(); 
    if (key == KeyEvent.VK_ENTER) 
    { 
     String tb1EnterdValue = tb1.getText().toString(); 
     if((tb1EnterdValue.equals("yes"))) 
     { 
      TextArea1.setForeground(Color.green); 
    else 
     { 
       TextArea1.setForeground(Color.lightGray); 
     } 
     this.TextArea1.append(">"+tb1EnterdValue+newline); 
     this.tb1.setText(""); 

Trả lời

3

Tôi sẽ sử dụng JTextPane với "thuộc tính" (không phải HTML) để thay đổi màu văn bản. Phần từ hướng dẫn Swing trên Text Component Features có một ví dụ làm việc để giúp bạn bắt đầu.

Tôi đã thử JTextPanes trước nhưng họ sẽ không cho phép tôi sử dụng phương pháp append()

Các append() phương pháp chỉ là một phương pháp thuận tiện cho phép bạn thêm văn bản vào cuối tài liệu. Bạn có thể triển khai thực hiện phương thức append() của riêng bạn cho một JTextPane. Chỉ cần nhìn vào mã nguồn cho JTextArea và sao chép mã từ phương thức append() của nó.

+0

Cảm ơn, nhưng làm thế nào chính xác để tôi nhận được mã nguồn từ JTextArea? – Kevin

+0

Mã nguồn đi kèm với JDK. Của nó trong một tập tin gọi là src.zip. – camickr

+0

OK, tôi phải sao chép mã này ở đâu? – Kevin

0

Đây có phải là Swing và bạn đang sử dụng JTextAreas không? Nếu vậy, hãy cụ thể trong câu hỏi của bạn, và sau đó không sử dụng một JTextArea vì nó không phải là thành phần văn bản lý tưởng để sử dụng nếu bạn muốn có nhiều định dạng trong một thành phần văn bản. Thay vào đó, hãy xem xét sử dụng JTextPane hoặc JEditorPane. Các hướng dẫn sẽ chỉ cho bạn cách sử dụng chúng và khi nào chúng nên được sử dụng.

+0

có nó là một swing và JTextArea. Tôi đã thử JTextPanes trước nhưng họ sẽ không cho phép tôi sử dụng phương thức append() và tôi cần phải thực hiện từng 'lệnh' trên một dòng mới. – Kevin

+0

Thiếu phụ thêm sẽ không ngăn bạn sử dụng các thành phần văn bản khác khi bạn có thể thêm văn bản vào Tài liệu của thành phần. –

+0

Tôi làm như thế nào? Bởi vì tôi cần con trỏ để tạo một dòng mới sau mỗi mục nhập vào văn bản-bất cứ điều gì. Giống như là có bất kỳ phương pháp tương tự như phụ thêm? – Kevin

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