Swing Java:JTextPane中是否有任何方法可以执行与JTextArea中的append()相同的操作?

Swing Java:JTextPane中是否有任何方法可以执行与JTextArea中的append()相同的操作?,swing,netbeans-6.9,jtextfield,jtextarea,jtextpane,Swing,Netbeans 6.9,Jtextfield,Jtextarea,Jtextpane,该程序允许用户在文本字段中键入命令,然后他们键入的任何内容都将显示在文本区域中。如果是“是”等关键字,它将变为绿色,但是我无法在文本区域中仅设置一行绿色文本,因此我需要使用文本窗格 问题是如果我使用文本窗格,我就不能再使用append方法了 private final static String newline = "\n"; private void enterPressed(java.awt.event.KeyEvent evt) {

该程序允许用户在文本字段中键入命令,然后他们键入的任何内容都将显示在文本区域中。如果是“是”等关键字,它将变为绿色,但是我无法在文本区域中仅设置一行绿色文本,因此我需要使用文本窗格

问题是如果我使用文本窗格,我就不能再使用append方法了

private final static String newline = "\n";
private void enterPressed(java.awt.event.KeyEvent evt) {                                      
    int key = evt.getKeyCode();
    if (key == KeyEvent.VK_ENTER)
    {
       String textfieldEnterdValue = textfield1.getText().toString();
       this.TextArea1.append("> "+tb1EnterdValue+newline);
       this.tb1.setText("");
       if((tb1EnterdValue.equals("yes")) )
        {
            TextArea1.setForeground(Color.green);
        }
    }

我认为您需要直接在底层文档上执行此操作

Document d = textPane.getDocument();
d.insertString(d.getLength(), value, null);
大概是这样的:

String value = textfield1.getText(); // no need for toString() here! textPane.getDocument().insertString(textPane.getCaretPosition(), value, null); String value=textfield1.getText();//这里不需要toString()! textPane.getDocument().insertString(textPane.getCaretPosition(),值,null); 用作模型。这是支持使用多种颜色和字体所必需的。
因此,要附加到JTextPane,您需要修改文档。
可采用以下方法:


例如,这会将
附加到文档末尾

Document d = textPane.getDocument();
d.insertString(d.getLength(), value, null);
此外,您可能需要调用的结果,以确保新添加的行显示在屏幕上