# selektiertes Element aus JList zurückgeben



## Einklang. (9. Jul 2012)

Hallo,

irgendwie wills nicht so richtig funktionieren:



```
public void actionPerformed(java.awt.event.ActionEvent evt10) {
		int index = list_1.getSelectedIndex();
		
		}
```

Fehlermeldung:



> Multiple markers at this line
> - void is an invalid type for the variable
> actionPerformed
> - ActionEvent cannot be resolved to a type
> ...



Vorbild war das hier:
How to Use Lists (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)


----------



## Michael... (9. Jul 2012)

Hört sich so an, als wolltest Du die actionPerformed Methode innerhalb einer Methode deklarieren oder es stimmt etwas mit der Klammersetzung nicht. In dem geposten Code ist zumindest nichts falsch - mal abgesehen von dem _ im Variablennamen. Der wird in Java üblicherweise nicht für Bezeichner von Instanzvariablen verwendet.


----------



## Einklang. (9. Jul 2012)

Naja das kann gar nicht funktionieren weil es keinen Bezug zu meiner JList hat.

Zweck der Veranstaltung soll sein, das aktive/selektierte Element in einer JList zu erhalten.

Das hier hab ich noch als "Kernlösung" aber das scheint auch nicht so richtig zu funktionieren:

```
list_1.addListSelectionListener(java.awt.event.ActionEvent);
```

So richtig kann ich heute 1 und 1 nicht zusammenzählen


----------



## Michael... (9. Jul 2012)

Einklang. hat gesagt.:


> Naja das kann gar nicht funktionieren weil es keinen Bezug zu meiner JList hat.


Kann schon. Wenn das Event von der JList gefeuert wird, dann liefert das ActionEvent als seine Quelle eine Referenz auf die JList.


Einklang. hat gesagt.:


> Das hier hab ich noch als "Kernlösung" aber das scheint auch nicht so richtig zu funktionieren:
> 
> ```
> list_1.addListSelectionListener(java.awt.event.ActionEvent);
> ```


Was das werden soll, kann mich mir leider nicht vorstellen?

Was soll den genau gemacht werden?


----------



## Einklang. (9. Jul 2012)

Aaalso ich habe eine Jlist die jetzt gefüllt wird mit den Elementen aus einer lokalen SQL-Datenbank wie ichs haben will.........!

Jetzt soll das selektierte Element dieser JList zurückgegeben werden. Im Endeffekt sollen weitere Daten in einer zweiten JList angezeigt werden zu dem jeweiligen Element aus der ersten JList.......!

Und ich steh gerade daran das selektierte Element aus der ersten JList als Variable zu bekommen, um damit eine SQL-Abfrage zu starten..........!

Die JList ist wie gesagt "list_1"! Mehr hab ich nicht...... jetzt muss ich was wie oben schon gezeigt als Code schreiben - glaub ich ;-)


----------



## Michael... (9. Jul 2012)

Einklang. hat gesagt.:


> Und ich steh gerade daran das selektierte Element aus der ersten JList als Variable zu bekommen, um damit eine SQL-Abfrage zu starten..........!


Das geht mit der bereits von Dir geposten Methode. Ein Aufruf and der JList von JList#getSelectedIndex() liefert den selektierten Index und JList#getSelectedValue() liefert das selektierte Objekt.
Da Du Dein konkretes Problem allerdings nicht beschreibst, vermute ich, dass Du auf die Selektion des Anwenders reagieren willst und darauf hin das selektierte Element auslesen willst.
Hierzu kann man einfach den passenden Listener an das SelectionModel der JList hängen:

```
jList.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
	public void valueChanged(ListSelectionEvent e) {
		// TODO
	}
});
```


----------



## Einklang. (9. Jul 2012)

Mein PRoblem lag darin dass ich nicht wusste wie ich das nun anstelle überhaupt - jetzt seh ich dass ja wie es funktioniert! 

Allerdings erhalte ich hier Fehlermeldungen:
bei "jList..." - 





> Multiple markers at this line
> - Line breakpoint:ButtonDBTable [line: 470] - initComponents()
> - The method addListSelectionListener(ListSelectionListener) in the type ListSelectionModel is not applicable for the arguments (new
> ListSelectionListener(){})
> - ListSelectionListener cannot be resolved to a type


bei "public void" - 





> ListSelectionEvent cannot be resolved to a type


----------



## Einklang. (9. Jul 2012)

Mir hat jetzt noch jemand "extern" die Lösung gezeigt und erklärt... 


```
list_1.addListSelectionListener(new ListSelectionListener() { 
			public void valueChanged(ListSelectionEvent event) {
				int index = list_1.getSelectedIndex();
        	}});
```


----------

