我的 Swing 应用程序包含一个 JEditorPane,它允许用户以所见即所得的方式编辑文本,包括粗体、斜体和设置字体等的工具栏按钮。
JEditorPane 上的内容类型是 text/html
问题:用户希望能够在编辑器窗格中键入制表符,关闭编辑对话框(将 HTML 文本保存到持久存储)并查看他们的制表符呈现。但是,HTML 将所有空格视为单个空格。
public class NoteTest {
public static void main(String[] args) {
final JEditorPane editPane1 = new JEditorPane("text/html", "Try typing some tabs");
editPane1.setPreferredSize(new Dimension(400, 300));
JOptionPane.showMessageDialog(null, new JScrollPane(editPane1));
JOptionPane.showMessageDialog(null, new JScrollPane(new JEditorPane("text/html", editPane1.getText()))); // where did the tabs go?
}
}
在第一个 JEditorPane 中键入选项卡后,我们从中获取 HTML 文本,并将其传递给第二个 JEditorPane,它将选项卡呈现为空格。
如何呈现这些选项卡?我应该将用户输入的内容保存为 RTF 而不是 HTML?我是否应该解析 HTML 并构建一个包含行和单元格的 HTML 表格(呃)。或者有什么方法可以告诉 swing 将制表符呈现为制表符?