2012-12-21 28 views

Trả lời

5

Bạn có một số tùy chọn. Bạn có thể tạo một lớp CSS và thiết lập nó trên phần tử cơ thể của tài liệu bên trong RichTextArea, hoặc bạn có thể thiết lập thuộc tính style trên nó trực tiếp. Nếu bạn muốn thay đổi này nhất quán trong suốt ứng dụng của mình, tôi khuyên bạn nên tạo một lớp mới và thêm InitializeHandler vào nó.

public class MyRichTextArea extends RichTextArea { 

    public MyRichTextArea() { 

     addInitializeHandler(new InitializeHandler() { 

      @Override 
      public void onInitialize(InitializeEvent ie) { 

       Document document = IFrameElement.as(getElement()).getContentDocument(); 
       BodyElement body = document.getBody(); 
       body.setAttribute("style", "font-family: Arial Unicode MS,Arial,sans-serif;"); 
      }); 
     } 
    } 
} 
+0

xin lỗi nhưng điều đó không làm việc, tôi cũng đã cố gắng để thiết lập nó với : richTextArea.setStyleName ("font-family: Arial Black"); – wasp256

+1

Nó hoạt động hoàn toàn tốt trong ứng dụng của tôi. setStyleName, mặt khác, rõ ràng sẽ không hoạt động vì nó đặt kiểu trên chính RichTextArea chứ không phải trên tài liệu chứa nó. –

2

Tốt hơn nên sử dụng chức năng được cung cấp. Nếu bạn muốn thay đổi nó lúc sáng tạo, bạn sẽ cần initializeHandler như đã đề cập trong câu trả lời 1:

RichTextArea rta = new RichTextArea(); 
rta.addInitializeHandler(new InitializeHandler() { 
    public void onInitialize(InitializeEvent event) { 
      rta.getFormatter().setFontName("\"Trebuchet MS\",Trebuchet,Arial"); 
      rta.getFormatter().setFontSize(FontSize.SMALL); 
      rta.getFormatter().setForeColor("#FF0000"); 
     } 
    }); 

PS: bạn cần phải làm điều này trước khi bạn thêm bất kỳ nội dung vào textarea, hoặc nó sẽ chỉ có áp dụng cho đầu vào mới.

+0

Vì thứ tự câu trả lời có thể thay đổi khi bỏ phiếu, sẽ hữu ích hơn khi tham khảo câu trả lời khác của người dùng đã đăng, thay vì số của nó. – ASGM

+0

Đây là câu trả lời WRONG - nó sẽ thiết lập một phong cách mới trên văn bản được lựa chọn duy nhất, không phải trên tất cả các nội dung của RichTextArea như được chỉ định trong câu hỏi. –

0

tôi đã tìm thấy giải pháp phổ biến hơn:

addInitializeHandler(new InitializeHandler() { 
     public void onInitialize(InitializeEvent ie) { 
      Document document = IFrameElement.as(getElement()).getContentDocument(); 
      BodyElement body = document.getBody(); 
      HeadElement head = HeadElement.as(Element.as(body.getPreviousSibling())); 
      LinkElement styleLink = document.createLinkElement(); 
      styleLink.setType("text/css"); 
      styleLink.setRel("stylesheet"); 
      styleLink.setHref("richtextarea.css"); 
      head.appendChild(styleLink); 
     } 
    }); 

Sau khi thêm handler khởi, thật dễ dàng để thay đổi phong cách trong richtextarea.css tập tin

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