2016-04-09 11 views
0

aus klicken Wenn ich auf eine Schaltfläche klicken (z mainBtn) dann einen String wählen im mealList und dann auf eine andere Taste klicken (z starterBtn) ein Fehler in der Konsole ausgelöst. Wenn jemand mich in die richtige Richtung stoßen könnte und mir zeigen würde, warum der Code eine Fehlermeldung ausgibt, die sehr geschätzt würde.Fehler ausgelöst, wenn ich 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); 

Fehlermeldung

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

die Ausnahme an dieser Stelle geworfen wird -> MenuPage.updateLabel (MenuPage.java:317). Vielleicht, wenn du diese Methode kopierst, kann dir jemand helfen. – RubioRic

+0

Um eine bessere Hilfe zu erhalten, sollten Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/) veröffentlichen. –

+0

Noch warten auf Sie Antworten zu akzeptieren, wenn Sie Hilfe bekommen. Zum Beispiel: http://stackoverflow.com/questions/36509153/trying-to-create-a-remove-button-which-removes-items-from-a-list. Ich warte immer noch darauf, dass Sie die richtigen Variablennamen verwenden. Wie folgt "DLM" dem Standard, den Sie in dem obigen Link angegeben haben. – camickr

Antwort

2

Sie sind auf einen ungültigen Index aufrufen, wenn Sie das Element ausgewählt haben, müssen Sie nicht Indexwert werden die Festlegung, was Sie gewählt haben, deshalb wird die Schaltfläche Register als -1 wegen der Freigabe der Taste möchten, können Sie den Indexwert des Elements der Wahl haben, mit der Action enthielt

+0

Ich habe jetzt die Methode hinzugefügt, wo die Fehlermeldung angezeigt wird. –

+0

Auch Sie haben keine gültige Indexposition haben, was Sie haben, ist im Wesentlichen eine Arraylist von Tasten, aber wenn Sie die Taste drücken, werden die Werte nicht auf diesen Index gesetzt, weshalb Sie eine -1 Index bekommen, die -1, da die Taste freigegeben wurde und die Änderung wurde markiert Anstelle des Index Ihrer Option – Rocket6488

+0

ich eine gültige Indexposition hinzugefügt haben und den Code funktioniert jetzt. –