需要帮助更新JTextArea - Java

时间:2015-08-21 02:32:38

标签: java swing jtextarea

我是Java课程的第三周。我正在进行下周到期的课堂作业。我可以使用控制台作为输出完成任务而没有任何问题,这是可以接受的。然而,教授还建议我们研究JTextArea并考虑将它用于我们的程序输出。

我从教程中找到了一些代码,并且能够至少得到一个文本块,以显示我的第一行文本。但是当我编写实际程序时,我需要在程序进行时继续向文本块添加其他行。

当我尝试在main方法中使用以下代码行来显示文本行2时,我得到一个错误,&#34;非静态变量textarea不能从静态上下文引用&#34;。< / p>

textarea.append("Product1\t3\t$3.01\t$9.03");

这是我到目前为止的代码。在此先感谢您的帮助!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ta extends JFrame{
JTextArea textarea;


public ta(){
setLayout(new FlowLayout ());
textarea = new JTextArea ("Product\tQuantity\tLine Cost\tOrder Cost\n", 5,30);
add(textarea);
}



public static void main(String[] args) {

ta gui = new ta();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setSize(500,200);
gui.setVisible(true);

textarea.append("Product1\t3\t$3.01\t$9.03");
}
}

1 个答案:

答案 0 :(得分:0)

您无法从textarea上下文(即static内)引用main(这是一个实例字段)。

相反,将textarea.append("Product1\t3\t$3.01\t$9.03");移到构造函数

public ta(){
    setLayout(new FlowLayout ());
    textarea = new JTextArea ("Product\tQuantity\tLine Cost\tOrder Cost\n", 5,30);
    add(textarea);
    textarea.append("Product1\t3\t$3.01\t$9.03");
}

或提供其他一些&#34;更新&#34;您可以调用的ta课程的方法

您可能希望阅读Code Conventions for the Java TM Programming Language,这样可以让人们更轻松地阅读您的代码并让您阅读其他代码