从main方法访问java jTextField

时间:2013-02-17 13:18:47

标签: java swing netbeans applet awt

我使用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 ...

3 个答案:

答案 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方法来操作文本字段等。有很多方法可以做到,但我认为你需要在我看来阅读它。