2012-04-08 2 views
1

Ich habe eine JList von Benutzern, und wenn ein Element in der Liste ausgewählt ist, speichere ich den Index dieses Elements in einem int. Dann hört ein JButtonActionListener für einen Druck auf die Schaltfläche "Benutzer löschen" und löscht den Benutzer an diesem Element der Liste. Problem ist, wenn es das anfänglich tut, hört die ActionListener auf zu laufen, wenn ich also ein anderes Element löschen möchte, wird die Schaltfläche nichts mehr tun. Wie stelle ich sicher, dass der Event-Handler auch dann noch ausgeführt wird, wenn er bereits einmal ausgeführt wurde? Hier ist mein Code als Referenz:Behalten Sie einen Java ActionListener bei, sobald er ein Ereignis behandelt hat?

+0

Ich sehe nichts falsch mit dem Code, den Sie gepostet haben - sagen Sie, dass der Löschknopf irgendwie nichts beim zweiten Mal macht, wenn Sie darauf klicken? Sehen Sie Ausnahmen auf der Konsole? – casablanca

+0

Keine Ausnahmen. Die Löschtaste tut nichts, wenn ich das zweite Mal darauf klicke – aakbari1024

Antwort

4

Problem ist, dass Sie eine ganz neue Benutzerliste aus dem Lösch-Handler setzen.

Quick Fix: Liste Event-Handler auf die neuen JList

Proper fix hinzufügen: refactor so brauchen Sie nicht userList = new JList(listModel); in dem Lösch Handler zu tun.

+0

Wow, danke. Hab das nicht mal gemerkt. Ich werde die schnelle Lösung für jetzt tun :) – aakbari1024

+0

Stellt sich heraus, ich brauche Benutzerliste nicht einmal neu initialisieren. Ich ging davon aus, dass sich die Liste nicht von selbst auffrischen würde. Anscheinend tut es das. Problem gelöst! – aakbari1024

+0

+1, habe ich total übersehen, dass das OP eine neue Liste erstellt hat. – casablanca

Verwandte Themen