向JButton添加侦听器时出现Java NullPointerException
我正在Java GUI中显示一个表。用户当前可以通过单击“添加行”按钮向表中添加行,并编辑表中单元格的值。我现在尝试添加一个方法,通过单击“删除行”按钮从表中删除所选行 我已将按钮声明为全局变量:向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
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(){