java gwt的对象richtextarea默认情况下font-family'times new roman'是否可以将系列更改为'Arial'?
答案 0 :(得分:5)
您有几种选择。您可以创建一个CSS类并将其设置在RichTextArea内部文档的body元素上,也可以直接在其上设置style属性。如果您希望此更改在整个应用程序中保持一致,我建议您创建一个新类并向其添加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;");
});
}
}
}
答案 1 :(得分: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:您需要在向textarea添加任何内容之前执行此操作,否则它只会应用于新输入。
答案 2 :(得分: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
文件