2012-12-21 10 views

Antwort

5

Sie haben mehrere Möglichkeiten. Sie können eine CSS-Klasse erstellen und sie für das body-Element des Dokuments in RichTextArea festlegen, oder Sie können das style-Attribut direkt für sie festlegen. Wenn Sie möchten, dass diese Änderung in Ihrer App einheitlich ist, empfehle ich, eine neue Klasse zu erstellen und einen InitializeHandler hinzuzufügen.

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

sorry, aber das funktioniert nicht, ich habe auch versucht, es zu setzen mit : richTextArea.setStyleName ("Schriftfamilie: Arial Black"); – wasp256

+1

Es funktioniert perfekt in meiner App. setStyleName wird dagegen offensichtlich nicht funktionieren, da es den Stil auf der RichTextArea selbst und nicht auf dem Dokument, das es enthält, einstellt. –

2

Es ist besser, die bereitgestellten Funktionen zu verwenden. Wenn Sie es zum Zeitpunkt der Erstellung ändern möchten, müssen Sie die initializeHandler benötigen als 1 in Antwort erwähnt:

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: Sie müssen dies tun, bevor Sie Inhalte auf den Textbereich hinzufügen, oder es wird nur sein auf neue Eingabe angewendet.

+0

Da sich die Reihenfolge der Antworten bei Abstimmungen ändern kann, ist es sinnvoller, auf eine andere Antwort des Benutzers zu verweisen, der sie gepostet hat, als auf seine Nummer. – ASGM

+0

Dies ist die falsche Antwort - es wird nur für den ausgewählten Text einen neuen Stil festgelegt, nicht für alle Inhalte von RichTextArea, wie in der Frage angegeben. –

0

Ich habe festgestellt häufige Lösung:

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); 
     } 
    }); 

Nach dem Initialisierung Prozedur hinzuzufügen, ist es einfach Stile in richtextarea.css Datei zu ändern

Verwandte Themen