我是netbeans和java swing中的新手,但也很困惑。我将一些JLabel从一些文本拖放到netbeans中,现在我想从代码中更改该文本,并且出现错误。无法从静态上下文中引用非静态变量。 帮助为什么我无法从public static void main更改JLabel中的文本?
FirstFrame f = new FirstFrame();
f.labSifra.setText("aaaa");
我尝试这样做,当我启动应用程序的JLabel仍与旧文本
我是netbeans和java swing中的新手,但也很困惑。我将一些JLabel从一些文本拖放到netbeans中,现在我想从代码中更改该文本,并且出现错误。无法从静态上下文中引用非静态变量。 帮助为什么我无法从public static void main更改JLabel中的文本?
FirstFrame f = new FirstFrame();
f.labSifra.setText("aaaa");
我尝试这样做,当我启动应用程序的JLabel仍与旧文本
因为你尝试从static void main
public static void main(String[] args) {
//NetBeans GUI Init
}
通过NetBeans生成的代码
而且某处修改您的JLabel您有:
private javax.swing.JLabel jLabel1;
如果你把例如JButton的成表单生成并双击你会有方法:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// Here you can change text of JLabel.
jLabel1.setText("bla bla");
}
你可以改变jLabel1的默认范围/修饰符通过右键单击GUI组件然后Properties -> Code -> Variable Modifiers
main
是静态功能,以及将JLabel类的非静态成员,以及你不能从静态函数中访问非静态成员。
您需要将文本的设置委托给您在main中构建的类的实例的成员函数(非静态)。
现在,如果您不明白在这方面的静态和非静态含义 - 请参阅一本好书。
请包括[sscce](http://www.sscce.org),否则此问题将被关闭。你已被警告! > _> – mre 2012-03-23 13:33:57
刚刚包含的代码片段不是sscce。 – mre 2012-03-23 13:50:08