2017-10-13 15 views
-1

あるクラスからgetメソッドを呼び出し、それを別のactionlistnerクラスに実装するのに問題があります。ここでは、JTextFieldからテキストを取得するgetメソッドのコードを示します。ActionListenerクラスが別のクラスから値を取得できない

public String getTitleTextField() { 
    return this.TitleTextField.getText(); 
} 

のリスナークラスを呼び出すボタンは以下の通りです: `

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

public class Listener implements ActionListener{ 

    FilmPanel view; 
    SaveData save; 
    Object[] row = new Object[1]; 

    public void actionPerformed(ActionEvent arg0) { 
     row[0] = view.getTitleTextField(); 
     view.model.addRow(row); 
     try { 
      save.saveTable(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    }; 
} 

エラーが

として起動します:ここで

this.AddButton = new JButton("Add"); 
AddButton.setBounds(20, 161, 89, 23); 
AddButton.addActionListener(new Listener()); 
add(AddButton); 

は私のリスナークラスのコードです

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at assignment.listener.actionPerformed(listener.java:13) 

whiあなたはリスナーを作成するときに、このへの参照を追加します

+3

[NullPointerExceptionとは何ですか?それを修正するにはどうすればいいですか?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i) -fix-it) –

+0

これはどのように重複していますか? – user123123123

+1

「ビュー」はいつ設定されますか? 'FilmPanel view;は' view'が 'null'を取得することを意味し、' NullPointerException'を説明します – Stefan

答えて

1

そのないNULL例外が悪いのかを把握しようと

:任意の助け:)

EDITため、このrow[0] = view.getTitleTextField();

おかげCHポイント:

new Listener(this); // instead of new Listener() in your code 

はリスナーにコンストラクタを追加します。

public Listener(FilmPanel view) { 
    super(); 
    this.view = view; 
} 
+1

これは完璧な答えです。とてもシンプルでしたが、ありがとうございました! – user123123123

+0

私は助けてうれしいです:) – Stefan

+1

元の質問を参照してちょうどノート。フィールド 'SaveData save'もあり、' FilmView view'と全く同じように初期化されていません。ただし、例外処理によってこのエラーは隠されます。しかし、おそらくあなたはこれを既に認識しており、例外処理が実装されている理由はまだ実装する必要があるからです。 –

関連する問題