如何从一个类访问JTextArea到另一个类
问题描述:
我想访问状态,所以我可以附加值,但我的代码似乎不工作。请帮帮我。如何从一个类访问JTextArea到另一个类
public class NewClient extends JFrame implements ActionListener{
private static final int WIDTH = 600;
private static final int HEIGHT = 400;
public static JTextArea chat, event, cwindow, c2window, type, status;
public NewClient(){
status = new JTextArea(30,10);
status.setEditable(false);
}
这里的其他类
public class NewServer{
public static NewClient client;
public static void main(String args[]){
client.status.append("Online");
}
答
有两件事情,这里要注意:
你必须创建对象调用构造函数,否则你 将在下面打的NullPointerException line
client.status.append("Online");
所以,解决方法是创建一个对象,并指定值:
client = new NewClient();
client.status.append("Online");
像
status
静态变量不需要通过对象调用。因此, 而不是像下面的分配值:
client.status.append("Online");
您可以直接调用变量使用类名:
client = new NewClient();
NewClient.status.append("Online");
如果上面的注意,我们创建新的对象为NewClient
,使status
文本区域的值将作为NewClient
的构造函数的一部分进行初始化。
你从来没有实例化客户端。实际上你应该以'static'方式调用'status.append',而不是通过存储在变量中的实例来引用它。最后,您需要使用'EventQueue.invokeLater(Runnable)'将所有Swing代码发布到'EventQueue',并在[Event Dispatch Thread]上执行(https://docs.oracle.com/javase/tutorial /uiswing/concurrency/dispatch.html)。 – 2015-04-03 06:00:00