2017-10-13 72 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视图”那样初始化。但是,您的异常处理将隐藏此错误。但是,也许你已经意识到这一点,以及异常处理的原因是因为它仍然需要实施。 –