2010-10-20 2 views
6

Итак, я создал свой собственный класс текстовой панели (расширяющий JTextPane), и я использую метод ниже, чтобы добавить в него текст. Тем не менее, панель должна быть доступна для редактирования, чтобы добавить текст, но это позволяет пользователю редактировать то, что находится в панели.Добавление текста в JTextPane без его редактирования пользователем?

Может ли кто-нибудь сказать мне, как добавить текст в панель, не позволяя пользователю манипулировать тем, что там?

public void appendColor(Color c, String s) { 
    StyleContext sc = StyleContext.getDefaultStyleContext(); 
    AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c); 

    int len = getDocument().getLength(); 

    setCaretPosition(len); 

    setCharacterAttributes(aset, false); 

    replaceSelection(s); 

    setCaretPosition(getDocument().getLength()); 
} 

ответ

6

Обновление документа непосредственно:

StyledDocument doc = textPane.getStyledDocument(); 
doc.insertString("text", doc.getLength(), attributes); 
3
JTextPane pane = new JTextPane(); 
pane.setEditable(false); // prevents the user from editting it. 
// programmatically put this text in the TextPane 
pane.setText("Hello you can't edit this!"); 
+0

Я понимаю, но как бы я добавить текст в конец документа? –

0

Ok Take 2:

JTextPane pane = new JTextPane(); 
pane.setEditable(true); 
DefaultStyledDocument document = (DefaultStyledDocument)pane.getDocument(); 
document.insertString("Hello you can't edit this!", document.getEndPosition().getOffset(), null); 
Смежные вопросы