1

このアプリケーションをビルドして実行しようとしましたが、JTextField. 何が悪いのかわかりません...関連するコードは次のとおりです...

JTextFeild を構築します: (ファイル Main.java)

public class Constructor extends javax.swing.JFrame {

   public Constructor() {
      initComponents();
   }

   private void initComponents() {    
      refernce = new javax.swing.JTextField();
      /*Some other code in here*/
   }

   private javax.swing.JTextField refernce;
      /*Some other code in here*/       
   }

テキスト フィールドからデータを取得します: (File Save.java)

public class Save {

   /*Some other code in here*/

   private javax.swing.JTextField refernce;

   String refernceText = refernce.toString();

}

エラーレポート:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Save.<init>(Save.java:79)
at Constructor.saveMouseClicked(Constructor.java:444)
at Constructor.access$200(Constructor.java:15)
at Constructor$3.mouseClicked(Constructor.java:210)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
... (it carry on(ask if you need it))

どこで間違ったのですか?また、構文エラーなどはありません...

4

2 に答える 2

3

ここに問題があります。

public class Save {
  private javax.swing.JTextField refernce; <---- ISSUE
  ...
  String refernceText = refernce.toString();  
}

クラスSaveの参照フィールドは で初期化されnullます。

クラスのJTextFieldオブジェクト参照の参照をConstructorクラスに渡す必要がありますSave

例えば、

public class Save {
  private javax.swing.JTextField refernce;
  public Save(javax.swing.JTextField refernce){
    this.refernce=refernce;
  } 
  ...
  //and use JTextField in your methods
  void testMethod() {
    if(refernce!=null){
     String refernceText = refernce.getText();
     .....
    }
  }
}
于 2012-08-25T03:05:55.663 に答える
1

クラス Save で型 JTextField の参照 (ちなみに、変数のひどい名前です) を宣言したように見えますが、それを初期化していません。そのため、NullPointerException が発生しています。

コンストラクタークラスでそれを新しくします。

コンストラクター クラスで JTextField を新しくした後、JTextField 変数を引数として Save クラスのコンストラクターまたは Save クラスのメソッドに渡し、それを使用してテキストからテキストを取得する必要があります。分野。

また、JTextField で toString を呼び出したくありません。toString はテキストフィールドのデータを取得しません。getText() が必要です。

于 2012-08-25T03:05:45.067 に答える