java - 当我点击 ListModel 时抛出错误

标签 java swing indexoutofboundsexception jlist

当我单击一个按钮(例如 mainBtn),然后在 MealList 中选择一个字符串,然后单击另一个按钮(例如 starterBtn)时,控制台中会抛出错误。如果有人可以将我推向正确的方向并告诉我为什么代码会抛出错误消息,我将不胜感激。

public void updateLabel(menulist model) {


int selectionNumber = mealList.getSelectedIndex();
if (selectionNumber == -1){
} else {
    Food menulist = (Food) mealList.getSelectedValue();
Food itemFood = (Food) ((menulist) model).getElementAt(selectionNumber);

错误信息

Exception in thread "AWT-EventQueue-0"     java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.Vector.elementData(Vector.java:734)
at java.util.Vector.elementAt(Vector.java:477)
at javax.swing.DefaultListModel.getElementAt(DefaultListModel.java:89)
at MenuPage.updateLabel(MenuPage.java:317)

最佳答案

您正在调用无效索引,每当您选择该项目时,您都不能建立您选择的索引值,因此,由于按钮的释放,该按钮将注册为-1,您希望拥有ActionEvent 中包含的选项的索引值

关于java - 当我点击 ListModel 时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36518210/

相关文章:

Java Swing : JInternalFrame: need a dialog popup

java - 如何检查文本字段是否为空?

java - 线程中的异常 "AWT-EventQueue-0"java.lang.ArrayIndexOutOfBoundsException : 1

java - 信息 : API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'

java - 为什么 Wicket ListView 仅将更改分配给最后一行?

java - 修改静态数组中的 String 对象

java - 在独立模式下使用 spark 在 elasticsearch 中建立索引

java - 当我播放 mp3 文件时 Jbuttons 卡住了

java - 尝试使用软编码(基于输入的数组大小)制作掷骰子java应用程序,得到ArrayIndexOutOfBoundsException

java - java编码中swing中的数组索引越界错误