我的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将标签字符渲染为标签?
答案 0 :(得分:3)
为了更好地提供帮助,请发布SSCCE。此SSCCE不会显示您描述的行为。
请注意n
&之间的'标签' g
的{{1}}。
typin g
最后有一些标签消失了,但这是有道理的,因为HTML中不支持标签,除非包含在import java.awt.Dimension;
import javax.swing.*;
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?
}
}
元素中。我猜测Swing HTML解析会忽略它们是多余的。
答案 1 :(得分:1)
如果使用< PRE> < / PRE>文本标签和标签char?