向JButton添加侦听器时出现Java NullPointerException

向JButton添加侦听器时出现Java NullPointerException,java,swing,nullpointerexception,jtable,actionlistener,Java,Swing,Nullpointerexception,Jtable,Actionlistener,我正在Java GUI中显示一个表。用户当前可以通过单击“添加行”按钮向表中添加行,并编辑表中单元格的值。我现在尝试添加一个方法,通过单击“删除行”按钮从表中删除所选行 我已将按钮声明为全局变量: public JButton removeBtn = null; 然后我将侦听器添加到我的addListeners()方法中的按钮: private void addListeners(){ .... removeBtn.addActionListener(new ActionLis

我正在Java GUI中显示一个表。用户当前可以通过单击“添加行”按钮向表中添加行,并编辑表中单元格的值。我现在尝试添加一个方法,通过单击“删除行”按钮从表中删除所选行

我已将按钮声明为全局变量:

public JButton removeBtn = null;
然后我将侦听器添加到我的
addListeners()
方法中的按钮:

private void addListeners(){
    ....
    removeBtn.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            int selectedRow = jEntityFilterTable.getSelectedRow();
            DefaultTableModel model = (DefaultTableModel)jEntityFilterTable.getModel();
            model.removeRow(selectedRow);
        }
    });
}
然而,当我现在尝试运行我的代码时,我得到一个
NullPointerException
,它正在阻止它运行。。。例外情况是:

线程“main”java.lang.NullPointerException中出现异常

它抱怨的是:

removeBtn.addActionListener(new ActionListener(){
(我猜这意味着它可能是上面代码时钟中的任何东西,在这里我添加了
ActionListener

(在这里我调用
addListeners()
方法),并且


(我在我的
main()
方法中初始化
JConfigurationPane
的地方。有人能在这里发现我做错了什么吗?

尝试如下初始化按钮:

removeBtn = new JButton("Remove");

您尚未初始化removeBtn变量。是否替换

public JButton removeBtn = null;

在当前代码中,在线

removeBtn.addActionListener(new ActionListener(){

removeBtn不引用对象,因此没有任何东西可以调用addActionListener方法。因此,您会收到一个NullPointerException。

public JButton removeBtn=null;
它是
null
。在将
ActionListener
添加到它之前,您必须先初始化它,然后才能从代码中初始化按钮您发布的
removeBtn
null
。@反斜杠所说的。另外:“(我猜这意味着它可能是上面代码块中的任何东西,我正在添加ActionListener)”-不。该块中的内容是您的ActionListener。它在执行操作时运行,而不是在添加操作时运行。可能重复感谢您的回答。感谢您的回答。我已经尝试过了,它已经清除了我得到的
NullPointerException
,但由于某种原因,当我单击按钮时,所选行被删除未从表中删除。我已将一些调试代码添加到
actionPerformed()
方法中,但这从未显示在控制台中,因此似乎
actionPerformed()中的代码
method从未被调用过……你知道为什么吗?@someone2088我会为新发行的一期提出一个单独的SO问题。确保你发布了相关的代码和你尝试过的东西等。
public JButton removeBtn = null;
public JButton removeBtn = new JButton("Remove"); 
removeBtn.addActionListener(new ActionListener(){