在每篇文章中回答“如何将字符串附加到JEditorPane?”的问题。就像是
jep.setText(jep.getText + "new string");
我试过这个:
jep.setText("<b>Termination time : </b>" +
CriterionFunction.estimateIndividual_top(individual) + " </br>");
jep.setText(jep.getText() + "Processes' distribution: </br>");
结果我得到了“终止时间:1000”而没有“进程分发:”
为什么会这样?
答案 0 :(得分:63)
我怀疑这是附加文字的推荐方法。这意味着每次更改某些文本时,都需要重新整理整个文档。人们可能这样做的原因是因为不了解如何使用JEditorPane。那包括我。
我更喜欢使用JTextPane然后使用属性。一个简单的例子可能是:
JTextPane textPane = new JTextPane();
textPane.setText( "original text" );
StyledDocument doc = textPane.getStyledDocument();
// Define a keyword attribute
SimpleAttributeSet keyWord = new SimpleAttributeSet();
StyleConstants.setForeground(keyWord, Color.RED);
StyleConstants.setBackground(keyWord, Color.YELLOW);
StyleConstants.setBold(keyWord, true);
// Add some text
try
{
doc.insertString(0, "Start of text\n", null );
doc.insertString(doc.getLength(), "\nEnd of text", keyWord );
}
catch(Exception e) { System.out.println(e); }
答案 1 :(得分:26)
JEditorPane
,就像JTextPane
一样,Document
可以用来插入字符串。
要将文字附加到JEditorPane中,您想要做的是这个片段:
JEditorPane pane = new JEditorPane();
/* ... Other stuff ... */
public void append(String s) {
try {
Document doc = pane.getDocument();
doc.insertString(doc.getLength(), s, null);
} catch(BadLocationException exc) {
exc.printStackTrace();
}
}
我测试了这个,它对我来说很好。 doc.getLength()
是您要插入字符串的位置,显然您可以将此行添加到文本的末尾。
答案 2 :(得分:4)
setText用于设置文本窗格中的所有文本。使用StyledDocument界面追加,删除,等等文本。
txtPane.getStyledDocument().insertString(
offsetWhereYouWant, "text you want", attributesYouHope);