该程序允许用户在文本字段中键入命令,然后输入的任何内容将显示在文本区域中。如果它是关键字,例如是,它将变为绿色,但是我不能在文本区域中仅设置一行文本绿色,所以我需要使用文本窗格。
问题是,如果我使用文本窗格,我就不能再使用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);
}
}
答案 0 :(得分:1)
JTextPane使用Document作为模型。这对于支持使用多种颜色和字体是必要的 因此,要附加到JTextPane,您需要修改文档 可以使用以下方法:
insertString(int pos, String value, AttributeSet att)
remove(int pos, int length)
例如,这会将value
附加到文档的末尾。
Document d = textPane.getDocument();
d.insertString(d.getLength(), value, null);
此外,您可能希望使用scrollRectToVisible(Rectangle)的结果来致电modelToView(int),以确保新添加的广告在屏幕上。
答案 1 :(得分:0)
我认为您需要直接在基础文档上执行此操作。
这样的事情:
String value = textfield1.getText(); // no need for toString() here! textPane.getDocument().insertString(textPane.getCaretPosition(), value, null);