我正在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();
(我正在调用addListeners()
方法)和
JConfigurationPane panel = new JConfigurationPane();
(我在我的JConfigurationPane
方法中初始化main()
。有人能发现我在这里做错了吗?
答案 0 :(得分:1)
您尚未初始化removeBtn变量。取代
public JButton removeBtn = null;
与
public JButton removeBtn = new JButton("Remove");
在您当前的代码中,在
行removeBtn.addActionListener(new ActionListener(){
removeBtn不引用对象,因此没有任何东西可以调用addActionListener方法。因此,您会收到NullPointerException。
答案 1 :(得分:0)
尝试像这样初始化你的按钮:
removeBtn = new JButton("Remove");