JTextPane - Пуля со списком HTMLEditorKit не отображается правильно, если я не делаю setText (getText ()) и перекрашиваю

Я имею:

JTextPane jtextPane = new JTextPane();
jtextPane.setEditorKit(new HTMLEditorKit());
...

Затем позже я пытаюсь добавить неупорядоченную кнопку списка на панель инструментов так, чтобы действие было:

Action insertBulletAction = 
        HTMLEditorKit.InsertHTMLTextAction ("Bullets", " ", 
                                            HTML.Tag.P, HTML.Tag.UL);
JButton insertBulletJButton = new JButton(insertBulletAction);

И это включает в себя правильный код, если я возьму дамп HTML, которыйсгенерировано. Однако он будет отображаться очень плохо, так как даже близко не к разумному, как показано ниже:

Однако если я сделаю:

jtextPane.setText(jtextPane.getText());
jtextPane.repaint();

Тогда все хорошо.Но если я неДелайте обе линии, тогда ни одна не будет работать в одиночку. Я также могу заставить это работать, устанавливая текст прежде, чем я сделаю jtextPane видимым.

Это действительно странно, и я нене понимаю, почему яя должен сделатьsetText(getText()) с последующим.repaint()

PS: это очень похоже на этот вопрос:Как реализовать маркеры в JTextPane? И это работает, за исключением того, что этоне рендерится правильно. Я неНе знаю, имеет ли это отношение к HTMLEditorKit против RTFEditorKit, но что-то я вызываю сбой рендеринга. Исходный код HTML под отлично ...

PS2:Эта ссылка также очень удобна но это также непоказать решение.

Обновление: здесь полный код в соответствии с запросом, но нетмного чего еще ...

public static void main(String[] args)
{
    JFrame jframe = new JFrame();
    jframe.setSize(800, 600);
    jframe.setVisible(true);

    JTextPane jtextPane = new JTextPane();
    jtextPane.setEditorKit(new HTMLEditorKit());

    Action insertBulletAction = new HTMLEditorKit.InsertHTMLTextAction ("Bullets", 
                                    " ", HTML.Tag.P, HTML.Tag.UL);
    JButton insertBulletJButton = new JButton(insertBulletAction);
    insertBulletJButton.setRequestFocusEnabled(false);

    jframe.setLayout(new BorderLayout());
    jframe.add(new JScrollPane(jtextPane));
    jframe.add(insertBulletJButton, BorderLayout.SOUTH);
}

Ответы на вопрос(2)

Ваш ответ на вопрос