所以,我在Java(NetBeans(中很难处理共享变量。我有一个类带有一个变量——让我们称之为statlbl
。所以它是一个不可编辑的标签,其内容由另一个类更改。
这是情景喜剧。。。我完全不知道如何用另一个类更改位于一个类中的标签。
以下是代码提取:
//Print the ip address
System.out.println("This server's IP Address: " + ipAddress); TS_Entity.statlbl.setText("This server's IP Address: "
+ ipAddress);
try {
Thread.sleep(1000L);
} catch (Exception e) {
}
调试时,IDE显示一个错误,描述为"非静态变量不能从静态上下文引用">
任何帮助都将不胜感激!
您没有TS_Entity类的对象。您需要创建一个实例:
TS_Entity tsEntity = new TS_Entity();
以访问非静态字段。静态字段是类中的字段,而不是单个实例。对于其他字段,您将需要对象的一个实例,如示例中的tsEntity
。
该错误表示变量statlbl
不是静态的。您要么需要一个类型为TS_Entity
的对象,比如entity
。那么你的命令就是
entity.statlbl.setText("This server's IP Address: " + ipAddress);
要么这样,要么使statlbl
成为一个静态变量。
您使用的变量statlbl
是一个非静态变量。但是您正试图从一个本身是静态的方法访问这个非静态变量statlbl
。
这在java中是不可能的。您必须将statlbl
变量声明为static。
要从静态方法访问非静态字段,您需要创建这样的Object实例:
TS_Entity en = new TS_Entity()
;
现在您可以使用该对象的setter方法更改statlbl
的值。