gpt4 book ai didi

java - 带有 ListSelectionListener 的奇怪随机 NPE

转载 作者:行者123 更新时间:2023-12-02 06:53:39 26 4
gpt4 key购买 nike

我在我编写的lil应用程序中随机出现了NullPointerException。基本上,它应显示一个数字列表,当选择其中一个数字时,一些详细信息应显示在窗口的其他部分。

当单击按钮添加新数据集时,会打开一个新窗口,其中包含一些文本字段和一个按钮,用于将其触发到数据库并更新列表以包含网络数据集,并选择该数据集。

在这个位置,我非常随机地得到一个 NPE(见下面的日志)。有趣的是——无论是否有错误,一切都正常。只是 window 没有关闭。当我在 Debug模式下运行时,它永远不会发生。

查看日志: http://pastebin.com/FQzp6Wqp

这是选择监听器:

menu.itemList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
String index = menu.itemList.getSelectedValue().toString(); //mentioned Line 63
TDMInvDB db = new TDMInvDB();
try {
details.descr.setText(db.getDescr(index));
details.specs.setText(db.getSpecs(index));
details.historyList.setListData(db.getHistory(index));
if(Integer.parseInt(index) < 0) {
details.add.setEnabled(false);
details.edit.setEnabled(false);
} else {
details.add.setEnabled(true);
details.edit.setEnabled(true);
}
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
}
});

这是要触发数据库的按钮的 ActionListener:

add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
TDMInvDB db = new TDMInvDB();
try {
db.addItem(inv.getText(), descr.getText(), specs.getText());
m.itemList.setSelectedIndex(-1);
m.itemList.setListData(db.getItemList()); //mentioned Line 108
m.itemList.setSelectedValue(inv.getText(), true);
ai.dispose();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
});

最佳答案

插入怎么样

if (menu.itemList.getSelectedValue() == null) 
return;

之前

String index = menu.itemList.getSelectedValue().toString();

如果没有选择任何内容,那么您就不想执行任何操作。

关于java - 带有 ListSelectionListener 的奇怪随机 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17691672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com