gpt4 book ai didi

java - 如何在 JTextPane 中插入 html 特殊字符

转载 作者:行者123 更新时间:2023-12-02 05:48:05 25 4
gpt4 key购买 nike

我在 JTextPane 上阅读了很多线程,这让我开始使用 JTextPane 编写一个小文本编辑器,但在项目中间我几乎折叠起来!请有人向我解释一下如何在文本 Pane 中插入 html 字符,例如

JTextPane pane = new JtextPane(); 
pane.settext("¢");

我的问题是,如果我已经键入了一些文本,然后使用 settext 方法在同一行文本上插入特殊字符,则在前一个文本的同时插入特殊字符消失。我怎样才能阻止这种情况发生?

最佳答案

您还没有说明何时要调用setText。如果您想响应按钮点击来执行此操作,那么您只需要:

  1. 从(捕获的变量) Pane 中读取文本
  2. 附加您想要的字符
  3. (可选)使用 grabFocus 将焦点和输入插入符号放回到文本 Pane 中。

代码如下所示:

JButton btnAdd = new JButton("add");
jPanel1.add(btnAdd);
btnAdd.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent arg0) {
String text = pane.getText();
pane.setText(text + "¢");
pane.grabFocus();
}
});

如果您正在使用 HTMLDocument(您还没有发布完整的代码,因此不清楚您正在做什么来生成 HTML),您可以执行以下操作:

pane = new JTextPane();
jPanel1.add(pane);
final HTMLEditorKit kit = new HTMLEditorKit();
final HTMLDocument doc = new HTMLDocument();
pane.setEditorKit(kit);
pane.setDocument(doc);
...
btnAdd.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent arg0) {
int start = pane.getSelectionStart();
try {
// add a span containing the desired element inside the current paragraph or other containing element
kit.insertHTML(doc, start, "<span>&cent;</span>", 0, 0, HTML.Tag.SPAN);
} catch ...
pane.grabFocus();
}
});

关于java - 如何在 JTextPane 中插入 html 特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23856048/

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