5

java gwtのオブジェクトrichtextareaには、デフォルトでfont-family'times new roman'がありますが、ファミリーを' Arial'に変更することはどういうわけか可能ですか?

4

3 に答える 3

5

いくつかのオプションがあります。CSSクラスを作成してRichTextArea内のドキュメントのbody要素に設定することも、スタイル属性を直接設定することもできます。この変更をアプリ全体で一貫させたい場合は、新しいクラスを作成し、それにInitializeHandlerを追加することをお勧めします。

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;");
            });
        }
    }
}
于 2012-12-21T10:46:08.970 に答える
2

提供されている機能を使用することをお勧めします。作成時に変更する場合は、回答1で説明したinitializeHandlerが必要になります。

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:テキストエリアにコンテンツを追加する前にこれを行う必要があります。そうしないと、新しい入力にのみ適用されます。

于 2013-04-04T12:35:44.370 に答える
0

私はより一般的な解決策を見つけました:

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

richtextarea.css初期化ハンドラーを追加した後、ファイルのスタイルを簡単に変更できます

于 2013-12-24T09:39:43.400 に答える