Eine Listener-Klasse für mehrere JLists (elegantere Lösung gesucht)

AvS

Erfahrenes Mitglied
Hi Leute,

ich hab mir hier was zusammengecodet, was soweit auch funktioniert, aber ich mir schwer vorstellen kann, dass es da nicht "schönere" Wege gibt, dies zu realisieren.
Für mein Projekt werden dynamisch JLists erzeugt, die aber alle das gleiche machen sollen, wenn ein Eintrag ausgewählt wird. Daher habe ich eine innere Klasse geschrieben, die von MouseAdapter erbt.

Java:
class ListListener extends MouseAdapter
	{
		public void mouseClicked(MouseEvent me) {
			if(me.getClickCount() == 2) {
				JList temp = new JList();
				temp = (JList) me.getComponent();
				System.out.println(temp.getSelectedValue());
			}
		}
	}
Was ich mich gefragt habe, ist : Muss ich wirklich immer eine temporäre JList erzeugen um an den selektierten Wert komme ?
 
Versteh ich überhaupt nicht warum du das machst....

Java:
JList temp = (JList) me.getComponent();

Das reicht doch völlig aus.
 
Okay, das ist ja nur die Kurzschreibweise von dem, was ich geschrieben habe. Aber damit nehme ich an, dass es wohl keine andere Möglichkeit gibt als sich schnell eine temporäre JList zu holen. Mehr wollt ich nicht wissen :D
 
Nein das ist keine kurzschreibweise. Wie lange beschäftigst du dich denn schon mit programmieren?

new erstellt ein neues Objekt. event.getComponent holt die JList die das Event ausgelöst hat und erstellt keine neue...
 
Eigentlich schon 1 1/2 Jahre, ich bin mir auch bewusst, dass new ein neues Objekt erzeugt, aber ich dachte immer dass sowas :
Java:
JList temp = (JList) me.getComponent();

ebenfalls ein neues Objekt erzeugt. Das "temp" kann ich danach ja auch weiterhin verwenden, ist also ein neues Objekt. Daher die Annahme es wär eine Kurzschreibweise !
 
Java:
JList temp = (JList) me.getComponent();
...erstellt kein neues Objekt, sondern holt nur eine Referenz auf das sowieso schon
angelegte Objekt.

Mit
Java:
JList temp = new JList();
                temp = (JList) me.getComponent();
legst du aber erst ein neues Objekt vom Typ JList an, dann wird der Variablen
die Referenz auf das angeklickte Objekt zugewiesen ... und das neu erstellte
Objekt ist überflüssig ... muß also im Nachhinein vom GarbageCollector
wieder gelöscht werden ... der Code von zeja ist also keine kurze Schreibweise
, sondern einfach eine effektive, da kein überflüssiges Objekt angelegt wird.

Gruß
sony2
 
Okay, habs selber nochmal nachgelesen und muss meinen Fehler eingestehen. So ist es nunmal, nur durch Fehler lernt man. :D
 

Neue Beiträge

Zurück