-1

NetBeans を使用してスイングで 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 の値にのみアクセスしたいのですが、メイン関数内に新しい TextField オブジェクトを作成したくありません。

ボタンのクリックイベントからテキストファイルにアクセスできます。

アイテムの追加/削除中にjList1で同じエラーが発生するため、main()関数内でそのコントロールにアクセスする解決策はありますか?

私はJavaの基本的な知識があり、vb6のプロジェクトをJavaに切り替えています...

4

3 に答える 3

1

エラーはそれをすべて言います->非静的変数jTextField1は静的コンテキストから参照できません
jTextfield1は非静的であり、静的コンテキスト(ここではメソッド)からアクセスするにmainは、クラスのオブジェクト参照が必要です。


これを試して:

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

インスタンスフィールドには、オブジェクトを使用してアクセスする必要があります

于 2013-02-17T13:22:51.073 に答える
0

スイングパッケージを読むことについて考えましたか?NetBeansを使用する代わりに、基本的なウィンドウとテキストフィールドを作成して自分で操作するのに十分な知識を身に付けることは難しくありません。

ヒントは、クラス内でGUIを分離し、その中でゲッターとセッターを作成することです。別のクラスにGUIクラスのオブジェクトを作成してインスタンス化します...次に、そのオブジェクトにアクセスし、setterメソッドを使用してテキストフィールドなどを操作します。それを行う方法はたくさんありますが、私の意見ではそれを読む必要があると思います。

于 2013-02-17T13:24:52.640 に答える
0

jTextField1静的に変更するか、内部でインスタンス化することができますmain

次の行を移動します。

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

機能するmain

于 2013-02-17T13:21:54.513 に答える