Hallo,
bin vor kurzem über ein Thema gestolpert, das mich etwas verwirrt hat, nämlich die EventListenerList und vor Allem deren korrekte Verwendung. Habe auf Anhieb keine meine Frage beantwortenden Posts "ergoogeln" können, deswegen frage ich hier.
Die Java Swing Klassen rufen die einzelnen Listener vom letzten Element in der Liste bis zum vorderen auf, mit der Begründung, dass bei einer eventuellen Löschung eines Listeners durch sich selbst kein Element übersprungen wird.
Aber: Wenn man tatsächlich nur einmal das Array am Anfang seiner fireWasAuchImmer-Methode von der EventListenerList erfragt (so wie es zum Beispiel der JSlider macht), ist die Instanz ja spätestens dann nicht mehr up to date, wenn ein Listener sich selbst löscht, denn dann wird in der EventListenerList das Array neu initialisiert, was dann aber nicht mehr die lokale Referenz betrifft. Somit ist dass Rückwärts-Durchlaufen doch vollkommen unnötig, oder ??? :autsch: (Abgesehen vom dem Fakt, von dem ich iwo gehört habe, dass ein Vergleich mit 0 bei der Abbruchbedingung iwie hardwarebeschleunigt ablaufen soll, was aber vmtl. vernachlässigt werden darf
)
Ist mir bloß aufgefallen und ich wollte wissen, ob ich tatsächlich rückwärts durchlaufen muss, was ich allgemein ein wenig verwirrender finde, oder ob die Alternative, das Durchlaufen vorwärts, ebenso "unbedenklich" ist.
bin vor kurzem über ein Thema gestolpert, das mich etwas verwirrt hat, nämlich die EventListenerList und vor Allem deren korrekte Verwendung. Habe auf Anhieb keine meine Frage beantwortenden Posts "ergoogeln" können, deswegen frage ich hier.
Die Java Swing Klassen rufen die einzelnen Listener vom letzten Element in der Liste bis zum vorderen auf, mit der Begründung, dass bei einer eventuellen Löschung eines Listeners durch sich selbst kein Element übersprungen wird.
Aber: Wenn man tatsächlich nur einmal das Array am Anfang seiner fireWasAuchImmer-Methode von der EventListenerList erfragt (so wie es zum Beispiel der JSlider macht), ist die Instanz ja spätestens dann nicht mehr up to date, wenn ein Listener sich selbst löscht, denn dann wird in der EventListenerList das Array neu initialisiert, was dann aber nicht mehr die lokale Referenz betrifft. Somit ist dass Rückwärts-Durchlaufen doch vollkommen unnötig, oder ??? :autsch: (Abgesehen vom dem Fakt, von dem ich iwo gehört habe, dass ein Vergleich mit 0 bei der Abbruchbedingung iwie hardwarebeschleunigt ablaufen soll, was aber vmtl. vernachlässigt werden darf
Ist mir bloß aufgefallen und ich wollte wissen, ob ich tatsächlich rückwärts durchlaufen muss, was ich allgemein ein wenig verwirrender finde, oder ob die Alternative, das Durchlaufen vorwärts, ebenso "unbedenklich" ist.