此代碼是按鈕的操作偵聽器。我有一個用戶輸入數據的JTable。它充滿了整數。出於某種原因,我能夠println()中的每一個值。但是,由於NullPointerException,我無法將它們存儲到我的ArrayList中。由於NullPointer Execption無法從JTable獲取數據
btnCalculate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
ArrayList<Integer> blades=new ArrayList<Integer>();
DefaultTableModel dtm = (DefaultTableModel) tableBlades.getModel();
int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
System.out.println(nRow + ", " + nCol);
for (int i = 0 ; i < nRow ; i++) {
for (int j = 0 ; j < nCol ; j++) {
blades.add(Integer.parseInt(dtm.getValueAt(i,j).toString()));
}
}
}
});
:基於錯誤日誌(編輯爲便於閱讀,添加括號)
,我已經能夠將它縮小到了我的價值添加到ArrayList行。我知道getValueAt()返回一個對象,所以我使用toString()和parseInt()使它成爲一個整數。任何想法這裏發生了什麼,以及如何解決它?
您可以檢查dtm是否爲空,或者如果dtm.getValueAt(i,j)返回null。 – PeterK 2014-10-17 15:36:19
我確定'getValueAt(i,j)'將爲空 – 2014-10-17 15:37:24
@PeterK'dtm'不能爲null,否則'nRow'會拋出一個NPE,否則,這很可能是。 – Obicere 2014-10-17 15:38:00