2010-10-20 48 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

我明白,但我會如何文本追加到文檔的結束? – 2010-10-20 02:26:03

0

確定以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);