如何使JTextPane在Java中具有不同的选项卡大小?

时间:2015-03-21 00:34:52

标签: java jtextpane

我有一个JTextPane,但我注意到如果我使用.setText()所有标签都会被删除。
要解决这个问题,我会看到两个选项:

  1. 正确设置标签。
  2. 用html特殊字符 替换所有标签,然后更改JTextPane中的标签大小以匹配html标签的宽度。
  3. 我不知道如何做#1所以我试图使用粗暴的#2。 所以我的问题是,如何使用HTMLDocument更改JTextPane的选项卡大小,或者我如何setText()并且没有删除选项卡?

    此外,我使用getText()setText()将文本保存在JTextPane中。

    提前谢谢。

1 个答案:

答案 0 :(得分:0)

为了在没有方法1或2的情况下解决我的问题,我已经这样做了:

textPane.getInputMap().put(KeyStroke.getKeyStroke("TAB"), "tab");
textPane.getActionMap().put("tab", new AbstractAction("tab"){
    private static final long serialVersionUID = -2621537943352838927L;

    public void actionPerformed(ActionEvent e){
        try {
            textPane.getDocument().insertString(textPane.getCaretPosition(), " ", null);//The " " is the html special character (tab) in plain text.
        } catch (BadLocationException e1) {
            e1.printStackTrace();
        }
    }
});

我发现这会覆盖默认的标签输入。