我使用netbeans在swing中创建了GUI,其中,java文件的结构层次结构如下,
public class NewJFrame extends javax.swing.JFrame
private void initComponents
--> jTextField1 = new javax.swing.JTextField();
public static void main
// one thread
--> jTextField1.setText("abc");
所以在线程中设置jTextField1的值在主函数内部,出现错误“非静态变量jTextField1不能从静态上下文引用”。
我想访问仅那个特定的 jTextField1的值,我不想在main函数中创建一个新的TextField对象。
我可以通过按钮的点击事件
访问文本并且在添加/删除项目时jList1中发生同样的错误,所以访问main()函数内的控件的任何解决方案?
我对java的基本知识,我正在将vb6中的项目切换为java ...
答案 0 :(得分:1)
错误说明了一切 - > 非静态变量jTextField1不能从静态上下文引用。
jTextfield1
是非静态的,为了从静态上下文(这里是main
方法)访问它,你需要一个类的对象引用。
试试这个:
NewJFrame obj = new NewJFrame();
obj.jTextField1.setText("abc");
应使用对象访问实例字段
答案 1 :(得分:0)
您可以将jTextField1
更改为静态,也可以在main
移动此行:
JTextField jTextField1 = new javax.swing.JTextField();
到main
功能。
答案 2 :(得分:0)
考虑阅读秋千包装?学习基本的窗口和文本字段并自己与它们进行交互并不难,而不是使用netbeans。
提示可能是在一个类中分离您的GUI,在其中创建getter和setter。在另一个类中创建一个GUI类对象并实例化它...然后通过它来访问它并使用setter方法来操作文本字段等。有很多方法可以做到,但我认为你需要在我看来阅读它。