java为什么我不能从publicstaticvoidmain更改JLabel中的文本?
我是netbeans和JavaSwing的新手,但也很困惑。我在netbeans中拖放了一些JLabel和一些文本,现在我想从代码中更改这些文本,我得到一个错误,非静态变量不能从静态上下文引用。 帮助
FirstFrame f = new FirstFrame();
f.labSifra.setText("aaaa");
我尝试了这个,当我启动应用程序时,JLabel仍然使用旧文本
你可以在下面搜索框中键入要查询的问题!
我是netbeans和JavaSwing的新手,但也很困惑。我在netbeans中拖放了一些JLabel和一些文本,现在我想从代码中更改这些文本,我得到一个错误,非静态变量不能从静态上下文引用。 帮助
FirstFrame f = new FirstFrame();
f.labSifra.setText("aaaa");
我尝试了这个,当我启动应用程序时,JLabel仍然使用旧文本
# 1 楼答案
因为您试图从
static void main
修改JLabel在由NetBeans生成的代码中,您有:
例如,如果将JButton放到form builder中并双击它,您将获得以下方法:
您可以通过在GUI组件上单击鼠标右键,然后
Properties -> Code -> Variable Modifiers
来更改jLabel1的解除作用域/修饰符# 2 楼答案
main
是一个静态函数,JLabel是类的非静态成员,您不能从静态函数访问非静态成员您需要将文本的设置委托给在main中构造的类实例的成员函数(非静态)
现在,如果您不明白在本文中静态和非静态的含义,请参阅一本好书