-1

我使用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 的值时,会发生错误"Non-static variable jTextField1 cannot be reference from static context"

我只想访问那个特定jTextField1 的值,我不想在主函数中创建一个新的 TextField 对象。

我可以从按钮的点击事件中访问文本文件,

并且在 jList1 中添加/删除项目时会发生同样的错误,因此有任何解决方案可以访问main() 函数中的该控件吗?

我有java的基本知识,我正在将vb6中的项目切换到java......

4

3 回答 3

1

错误说明了一切 - > Non-static variable jTextField1 cannot be reference from static context
jTextfield1是非静态的,为了从静态上下文(此处main方法)访问它,您需要该类的对象引用。


尝试这个:

NewJFrame obj = new NewJFrame();
obj.jTextField1.setText("abc");

应使用对象访问实例字段

于 2013-02-17T13:22:51.073 回答
0

想过阅读摇摆包吗?学习足够的知识来制作基本的窗口和文本字段并自己与它们交互并不难,而不是使用 netbeans。

一个技巧可能是将您的 GUI 分成一个类,在其中创建 getter 和 setter。在另一个类中创建一个 GUI 类对象并实例化它......然后通过它并使用 setter 方法来操作文本字段等。有很多方法可以做到这一点,但我认为你需要在我看来阅读它。

于 2013-02-17T13:24:52.640 回答
0

您可以更改jTextField1为静态或在内部实例化它main

移动这一行:

JTextField jTextField1 = new javax.swing.JTextField();

发挥main作用。

于 2013-02-17T13:21:54.513 回答