所以,我正在努力解决Java(NetBeans)中的共享变量问题。我有一个带变量的类 - 让我们称之为statlbl
。所以它是一个不可编辑的标签,其内容由另一个类改变。
这是sitch ...我绝对不知道如何更改一个类中的标签,与另一个类。
以下是代码的提取:
//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会显示错误及描述,“无法从静态上下文引用非静态变量”
任何帮助将不胜感激!
答案 0 :(得分:0)
错误表示您的变量statlbl
不是静态的。您需要拥有TS_Entity
类型的对象,例如entity
。那么你的命令就是
entity.statlbl.setText("This server's IP Address: " + ipAddress);
要么是,要么使statlbl
成为静态变量。
答案 1 :(得分:0)
您没有TS_Entity类的对象。您需要创建它的实例:
TS_Entity tsEntity = new TS_Entity();
访问非静态字段。静态字段是类中的字段,而不是单个实例。对于其他所有字段,您需要该对象的实例,例如tsEntity
。
答案 2 :(得分:0)
您使用的变量statlbl
是非静态变量。但是您试图从一个本身是静态的方法中访问这个非静态变量statlbl
。
这在java中是不可能的。您必须将statlbl
变量声明为静态。
要从静态方法访问非静态字段,您需要创建如下的Object实例:
TS_Entity en = new TS_Entity()
;
现在您可以使用此对象的setter方法更改statlbl
的值。