2017-10-13 74 views
-1

我無法從一個類調用get方法並在單獨的actionlistner類中實現它。這裏是我的get方法的代碼,它從JTextField獲取文本。ActionListener類無法從另一個類獲取值

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

調用聽者類的按鈕下面:

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

這裏是我的聽者中類代碼: `

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(); 
     } 
    }; 
} 

的錯誤出現如

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

whi CH指向此row[0] = view.getTitleTextField();

感謝所有幫助:)

編輯:

試圖找出什麼是錯的,它不是一個NULL例外

+3

可能重複[什麼是NullPointerException,以及如何解決它?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i - 修復它) –

+0

這是如何重複? – user123123123

+1

何時設置了「view」? ''FilmPanel視圖;'''''view'將得到'null'值,這解釋了'NullPointerException' – Stefan

回答

1

添加一個引用到這個時候,你所創建的偵聽:

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

在聽者添加一個構造函數:

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

這是完美的答案,它是這麼簡單,但謝謝你! – user123123123

+0

我很樂意幫助:) – Stefan

+1

只是提到原始問題的說明。還有一個「保存數據保存」字段,它不像「FilmView視圖」那樣初始化。但是,您的異常處理將隱藏此錯誤。但是,也許你已經意識到這一點,以及異常處理的原因是因爲它仍然需要實施。 –