gpt4 book ai didi

java - 仅在 jTextPane 中为一个字符着色

转载 作者:行者123 更新时间:2023-11-30 04:48:09 25 4
gpt4 key购买 nike

我正在使用 netbeans 开发一个项目。我正在尝试仅对 jTextPane 中文本的多个位置的一个字符进行着色。我尝试使用 StyledDocument.setCharacterAttributes,但它允许我为至少 2 个字符着色,这不是我想要的。

目前我正在使用此代码:

StyledDocument doc = jTextPane1.getStyledDocument();
javax.swing.text.Style style = jTextPane1.addStyle("Red", null);
StyleConstants.setForeground(style, Color.RED);
doc.setCharacterAttributes(5, 2, jTextPane1.getStyle("Red"), true);

谁能帮忙解决一下这个问题吗?

提前谢谢您。

最佳答案

这是一个为单个字符着色的示例。

import java.awt.Color;
import javax.swing.*;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

public class ColoredTextTest {

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = initgui();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}

private static JFrame initgui() {
JFrame frame = new JFrame("Test");
JPanel panel = new JPanel();
StyledDocument doc = (StyledDocument) new DefaultStyledDocument();
JTextPane textpane = new JTextPane(doc);
textpane.setText("Test");
javax.swing.text.Style style = textpane.addStyle("Red", null);
StyleConstants.setForeground(style, Color.RED);
doc.setCharacterAttributes(0, 1, textpane.getStyle("Red"), true);
panel.add(textpane);
frame.add(panel);
return frame;
}
}

关于java - 仅在 jTextPane 中为一个字符着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450601/

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