java gwt的对象richtextarea默认字体系列'times new roman'是否有可能将系列更改为'Arial'?
问问题
2587 次
3 回答
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;");
});
}
}
}
于 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 回答