gpt4 book ai didi

java - StyledDocument 的 setCharacterAttributes() - 摆脱不需要的行为

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

JTextPane pane = new JTextPane();
pane.setText("some text");
add(pane);

pane.addStyle("red", null);
Style red = pane.getStyle("red");
StyleConstants.setForeground(red, Color.RED);
pane.getStyledDocument().setCharacterAttributes(3, 1, red, true);

此 Pane 的内容看起来正常后:除了红色的“e”字符外,所有字符都是普通字符。但是在我在'e'之后输入一些字符后它也变红了。我如何摆脱这种行为?我只想设置给定角色的属性,我不希望它对其他人有任何影响。

最佳答案

修改 JTextPane 的输入属性应该这样做:

pane.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent event) {
final JTextPane textPane = (JTextPane) event.getSource();
EventQueue.invokeLater(new Runnable() {
public void run() {
MutableAttributeSet inputAttr =
textPane.getInputAttributes();
inputAttr.removeAttribute(StyleConstants.Foreground);
}
});
}
});

关于java - StyledDocument 的 setCharacterAttributes() - 摆脱不需要的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19208949/

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