我已经在这个问题上停留了好几天 java.lang.NullPointerException 线程中的异常"AWT-EventQueue-0"



我正在尝试完成一个课程项目,在询问了一些无法解决问题的同龄人后,我想寻求帮助。

我已经阅读了一些类似的问题,但仅使用这些资源我无法找出问题所在。

private void products_lstValueChanged(javax.swing.event.ListSelectionEvent evt) {                                          
//whenever this event is triggered update the selected product to be whichever one is highlighted in the list
//get the selected Value from the list - returned as an OBJECT
Object selectedObject = (Object)products_lst.getSelectedValue();
//cast the object to an animal and set as selectedAnimal value
selectedProduct = (Product)selectedObject;
updateQuantity();
}                                         
private void updateQuantity()
{
int stockLevel =selectedProduct.getStockLevel();
Order latest = currentCustomer.findLatestOrder();
for(Map.Entry<Integer, OrderLine> oEntry : latest.getOrderLines().entrySet())
{
if(oEntry.getValue().getProduct().getProductId() == selectedProduct.getProductId())
{
stockLevel-=oEntry.getValue().getQuantity();
}
}
if(selectedProduct != null)
{
quantity_cmb.removeAllItems();
for(int i = 1; i<=stockLevel;i++)
{
quantity_cmb.addItem(""+i);
}
}
}

线程"AWT-EventQueue-0"中的异常 java.lang.NullPointerException at Views.ViewProducts.updateQuantity(ViewProducts.java:233) 在Views.ViewProducts.products_lstValueChanged(查看产品.java:228)

因此,查看异常跟踪,异常似乎发生在调用products_lstValueChangedupdateQuantity后的五行 (233-228) 行。

那行是:

int stockLevel =selectedProduct.getStockLevel();

所以selectedProductnull.这意味着返回products_lst.getSelectedValue()null

因此,似乎在未选择任何项目时调用了此代码。可能它刚刚被取消选择。你需要处理这种情况。

最新更新