gpt4 book ai didi

java - 如何设置要在 JTextPane 中键入的文本的样式

转载 作者:行者123 更新时间:2023-11-30 06:38:20 31 4
gpt4 key购买 nike

我有一个 JTextPane,我可以修改其中一部分文本的样式。

假设JTextPane中没有任何内容被选中,我希望能够修改其中还没有的部分的样式,也就是说,设置用户接下来要键入的样式。

使用 setCharacterAttributes(start, length, style, attributeSet, replace) 和 length = 0 似乎无法做到这一点。

最佳答案

如果您在文本 Pane 的文档上设置了一个 DocumentFilter(假设您正在使用一个 AbstractDocument 子类,它具有 setDocumentFilter 方法) ,您可以在插入或替换文本时将属性集添加到文本中。

编辑:

举个简单的例子,这是 DocumentFilter 中的 replace 方法的实现,它在用户键入“a”时将文本变为红色:

public void replace( FilterBypass fb, int offset, int length,
String text, AttributeSet attrs ) throws BadLocationException
{
if ( text.startsWith( "a" ) )
{
SimpleAttributeSet newAttrs = new SimpleAttributeSet();
StyleConstants.setForeground( newAttrs, Color.RED );
attrs = newAttrs;
}

super.replace( fb, offset, length, text, attrs );
}

关于java - 如何设置要在 JTextPane 中键入的文本的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360168/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com