首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在InlineCSSTextArea javafX中更改突出显示文本的字体/大小/颜色/格式

问在InlineCSSTextArea javafX中更改突出显示文本的字体/大小/颜色/格式
EN

Stack Overflow用户
提问于 2014-11-11 06:24:34
回答 2查看 1.7K关注 0票数 0

我希望用户能够高亮显示文本,然后更改突出显示文本的字体或大小、颜色或格式(粗体、下划线、斜体)。

代码语言:javascript
复制
boolean b = isBold();
boolean u = isUnderlined();
boolean i = isItalicized();

String colorHexValue = getColorValue();
String f = (String)getFont();
int size = getSize();
Font font = new Font(f, size);

InlineCSSTextArea newArea = new InlineCSSTextArea();

我知道我能做到

代码语言:javascript
复制
newArea.getSelectedText();

以便得到突出显示的测试。但是,这将返回一个字符串。理想情况下,我想做这样的事情:

NewArea.getSelectedText().setFont(字体);

但这不起作用,因为选定的文本是字符串,而不是CssInlineTextArea。如何将选定的文本设置为我想要的字体/大小/颜色/格式?我觉得我需要CSS,但我不知道如何将它应用于突出显示的文本,也不知道在哪里编写css。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-11 14:48:59

假设您是在谈论来自RichTextFX的RichTextFX,那么使用getSelection()和setStyle(from, to, style)的组合

代码语言:javascript
复制
IndexRange selection = newArea.getSelection();
newArea.setStyle(selection.getStart(), selection.getEnd(), "-fx-font-family: Helvetica");

如果您不想使用CSS,而是直接使用Java来设置属性,则必须直接使用StyledTextArea而不是它的子类InlineCssTextArea。

票数 2
EN

Stack Overflow用户

发布于 2014-11-11 12:24:21

如果你想自己做这件事,看一看TextFlow

它可用于在单个文本流中布局多个文本节点。TextFlow使用其内部每个文本节点的文本和字体,再加上它自己的宽度和文本对齐方式来确定每个子节点的位置。

此外,您还可以对每个Text Node进行不同的样式设计。

如果您想使用一个现有的API来完成您提到的大部分功能,我建议您仔细看看RichTextFX。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26858853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档