2016-04-09 2 views
0

Когда я нажимаю на кнопку (например, mainBtn), затем выберите строку в списке FoodList и затем нажмите другую кнопку (например, starterBtn), ошибка возникает в консоли. Если кто-то может подтолкнуть меня в правильном направлении и показать мне, почему код бросает сообщение об ошибке, которое было бы высоко оценено.Ошибка при нажатии на ListModel

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) 
+0

Исключение составляет в этот момент -> MenuPage.updateLabel (MenuPage.java:317). Может быть, если вы скопируете этот метод, кто-то может вам помочь. – RubioRic

+0

Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). –

+0

Все еще ждут, когда вы примете ответы, когда получите помощь. Например: http://stackoverflow.com/questions/36509153/trying-to-create-a-remove-button-which-removes-items-from-a-list. Все еще ждут использования правильных имен переменных. Как «DLM» следует стандарту, указанному в приведенной выше ссылке. – camickr

ответ

2

Вы призываете недопустимый индекс, всякий раз, когда вы выбрали этот пункт, вы не должны установить, что значение индекса вы выбрали, поэтому, кнопка будет регистрироваться в качестве -1 из-за освобождения кнопки вы хотите, чтобы значение индекса, выбранного в ActionEvent, было включено в ActionEvent

+0

Теперь я добавил метод, в котором отображается сообщение об ошибке. –

+0

Опять же, у вас нет правильной позиции индекса, у вас есть, по сути, ArrayList кнопок, но когда вы нажимаете кнопку, значения не устанавливаются в этот индекс, поэтому вы получаете индекс -1, -1, потому что кнопка была выпущена, и изменение было отмечено вместо индекса вашей опции – Rocket6488

+0

Я добавил действительную позицию индекса, и теперь код работает. –

Смежные вопросы