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 JButton
ActionListener
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?
Antwort
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.
Wow, danke. Hab das nicht mal gemerkt. Ich werde die schnelle Lösung für jetzt tun :) – aakbari1024
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
+1, habe ich total übersehen, dass das OP eine neue Liste erstellt hat. – casablanca
- 1. Wie hörst du einen Soundeffekt auf, sobald er beginnt?
- 2. JAVA: Probleme mit Actionlistener
- 3. C#: Delegaten - Java: ActionListener
- 4. Java JTextField actionListener funktioniert nicht
- 5. Java-Actionlistener auf einer Registerkarte
- 6. Java - Instanz an ActionListener übergeben
- 7. Behalten Sie zwei fast identische Gits bei, ein Commit auseinander?
- 8. Java anonyme Klasse, die ActionListener implementiert?
- 9. Behalten Sie Anmerkungen auf CGLIB Proxies bei?
- 10. Behalten Sie eine konstante Tabellengröße bei?
- 11. Wie behandelt man onClick-Ereignis bei imageSpan in editText?
- 12. Behalten Docker-Container Dateiänderungen bei?
- 13. Ein ActionListener für viele JButtons
- 14. Behalten Sie einen Objektstatus in verschiedenen Läufen
- 15. Hat Angular ein Ereignis, wenn ein Controller erstellt wird?
- 16. JSP/Java/HTML | Wie erstelle ich einen ActionListener
- 17. So klicken Sie auf JButton mit Code in Java ActionListener
- 18. Verschieben Sie eine Datei in einen neuen Ordner und behalten Sie den Git-Verlauf bei.
- 19. Gibt es einen Grund, EventListener DOMContentLoaded zu entfernen, nachdem das Ereignis behandelt wurde? viele andere
- 20. Wie wird onchange-Ereignis bei Eingabetyp = Datei in jQuery behandelt?
- 21. Behalten Sie die Karten-Zoomstufe beim Verfolgen des Benutzerstandorts bei
- 22. Wie behandelt man ein Ereignis eines programmatisch erzeugten Objekts?
- 23. Wie stoppen Sie einen ActionListener von früheren Ereignissen erinnern
- 24. Java, mit einem ActionListener für mehrere Optionsfelder
- 25. Gibt es einen effizienten Weg, um einen Thread, der ActionListener in seiner run-Methode hat, so lange am Leben zu halten, bis ein click -Ereignis aufgetreten ist?
- 26. Skalieren Sie ein div, um in ein Fenster zu passen, aber behalten Sie das Seitenverhältnis bei
- 27. Wie behandelt man ein schließendes Anwendungsereignis in Java?
- 28. Behalten Sie den konsistenten Zustand zwischen den Containern bei
- 29. Wie setze ich einen ActionListener auf ein JFormattedTextField?
- 30. JMenu ActionListener
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
Keine Ausnahmen. Die Löschtaste tut nichts, wenn ich das zweite Mal darauf klicke – aakbari1024