2013-09-09 2 views
1

Я пытаюсь «добавить» таблицу css/html в jtextpane.Как добавить таблицу css/html в jtextpane

Когда я делаю: SetText как это: [! Совершенный]

 jtextpane.setText(css) 

я получить желаемый результат:

enter image description here

, но когда я пытаюсь добавить текст к jtextpane вот так:

 int len = jtextpane.getDocument().getLength(); 
     jtextpane.setCaretPosition(len); 
     jtextpane.replaceSelection(css); 

Я получаю HTML код, внедренный как это: enter image description here

Q: Как добавить результат таблицы (не код) в JTextPane? Я предполагаю, что я делаю что-то неправильно с replaceSelection ?! Заранее спасибо

EDIT - дополнительная информация:

  • Чтобы добавить всю текстовую информацию в JTextPane я использую следующий статический метод:
public static void appendToPane(JTextPane jtextpane, String userText, Color color) 
{ 
    StyleContext sc = StyleContext.getDefaultStyleContext(); 
    AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, color); 
    aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Myriad Pro"); 
    aset = sc.addAttribute(aset, StyleConstants.FontSize, 20); 
    int len = jtextpane.getDocument().getLength(); 
    jtextpane.setCaretPosition(len); 
    jtextpane.setCharacterAttributes(aset, false); 
    jtextpane.replaceSelection(userText); 
} 
  • о создании jtextpane У меня есть:

    jtextpane.setContentType ("text/html");

  • исходная строка CSS заключается в следующем:

table.imagetable { семейство шрифтов: Verdana, Arial, без засечек; Размер шрифта: 11px; цвет: # 333333; border-width: 1px; border-color: # 999999; пограничный коллапс: сбой; } table.imagetable th { background: # b5cfd2 url ('cell-blue.jpg'); border-width: 1px; прокладка: 8px; border-style: solid; border-color: # 999999; } table.imagetable td { background: # dcddc0 url ('cell-gray.JPG '); border-width: 1px; прокладка: 8px; border-style: solid; border-color: # 999999; }

+0

Возможно, это зависит от того, что было до этого. Теги стиля должны находиться в начале документа, если то, что вы добавляете, закрыто, тогда у вас могут возникнуть проблемы. Я не очень много знаю о том, как Java отображает HTML. – Cruncher

+0

Если бы вы могли точно указать, что такое 'css', и что именно' jtextpane.getText() 'находится перед добавлением, что помогло бы – Cruncher

+0

благодаря @Cruncher, я просто это сделал. – adhg

ответ

1

Вы должны объявить, какой тип текста, который вы используете в JTextPane

jtextPane.setContentType("text/html"); 

Если это не сработает, попробуйте также включить текст с правильным <html>, что должен делать. У меня была такая же проблема, я искал конкретный код.

+0

только что добавил html и код, который предшествует. Благодаря! – adhg

Смежные вопросы