gpt4 book ai didi

java - JEdi​​torPane 与 HTMLEditorKit 返回换行符而不是
标记

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:43 24 4
gpt4 key购买 nike

我正在尝试解决在安装了 HTMLEditorKit 的情况下使用 JEditorPane.getText() 时出现的不一致问题。

我可以使用 JEditorPane.setText 传递包含 < br> 标记的 HTML 字符串,并且当我使用 getText() 时,这些换行符会正确显示为 < br>。但是,当用户在 JEditorPane 中输入换行符时,getText() 返回“/n”字符而不是 < br> 标记。我的自定义 HTML 解析器无法区分用户的“/n”字符和添加的“/n”字符(看似)以使 HTML 字符串看起来更漂亮。一个例子:

如果用户输入一些文本,JEditorPane.getText() 过程将返回如下内容:

<html>
<head>

</head>
<body>
I've written some text! Indeed so much text that this line is probably
going to word wrap when I run the getText procedure!

And now I just hit enter a few times! I wonder what will happen if it wraps
another time? WHAM.
And I'll hit enter once more for good measure.
</body>
</html>

而我希望它显示为:

<html>
<head>

</head>
<body>
I've written some text! Indeed so much text that this line is probably
going to word wrap when I run the getText procedure!<br><br>And now I
just hit enter a few times! I wonder what will happen if it wraps
another time? WHAM.<br>And I'll hit enter once more for good measure.
</body>
</html>

有什么方法可以在用户按 Enter 时将 < br> 插入到 getText 字符串中吗?我的第一次尝试是使用 documentFilter,但文档说我只能在过滤器中大声使用 insertString 或 filterBypass,因此我无法使用 setText (“< br>”) 路由。经过大量阅读后,我认为另一个选择是扩展 HTMLEditorKit 并覆盖读取过程? JTextComponents 对我来说是新的,所以这超出了我的理解范围。还有其他选择吗?还是资源?

谢谢!

最佳答案

您可以使用 DocumentListener 并跟踪\n 插入。在插入时,为插入的\n 创建一个虚拟元素并替换其外部 html(使用 HTMLDocument 的 setOuterElement() 方法)。

查看自动替换微笑的示例 here

关于java - JEdi​​torPane 与 HTMLEditorKit 返回换行符而不是 <br> 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26824725/

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