我正在Java GUI中顯示一個表。用戶可以通過單擊「添加行」按鈕來添加行,並編輯表格中單元格的值。我現在試圖添加一個方法來通過單擊「刪除行」按鈕從表中刪除選定的行。將監聽器添加到JButton時發生Java NullPointerException
我已經宣佈按鈕作爲全局變量:
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
這是阻止它運行...異常說:
異常在線程「主要」顯示java.lang.NullPointerException
它在抱怨的線路有:
removeBtn.addActionListener(new ActionListener(){
(我猜意味着它可能是代碼的時鐘裏的任何東西上面,我在那裏「M添加ActionListener
)
addListeners();
(其中我打電話addListeners()
方法),和
JConfigurationPane panel = new JConfigurationPane();
(我在初始化JConfigurationPane
在我的main()
方法。任何人都可以發現我在這裏做錯了嗎?
'public JButton removeBtn = null;'它是'null'。你必須在添加一個ActionListener之前初始化它* – BackSlash
你在哪裏初始化你的按鈕?從你發佈的代碼中'removeBtn'是'null'。 – Narmer
@BackSlash說什麼。 Plus:「(我猜這意味着它可能是上面的代碼塊中的任何內容,我添加了ActionListener)」 - 否。該塊中的東西是你的ActionListener。它在執行操作時運行,而不是在添加操作時運行。 –