# JList aktualisieren



## sonic14 (26. Nov 2009)

Hi,

Ich hätt ne frage und zwar:

Wie kann ich die JListe aktualisieren mithilfe eines buttons?

Hier mal der Code von meiner liste:


```
public void actionPerformed(ActionEvent evt) {
							
							}
						});
					}
					{
						ListModel ListeModel = 
							new DefaultComboBoxModel(
									sb.gibAusListe()); // Hier wird die Methode aus einer anderen Classe aufgerufen 
//welche die Daten in die Liste holt. Das soll Aktualisiert werden in der liste
						
						Liste = new JList();
						jPanel1.add(Liste);
						Liste.setModel(ListeModel);
						Liste.setBounds(46, 140, 248, 135);
						Liste.addAncestorListener(new AncestorListener() {
							public void ancestorRemoved(AncestorEvent evt) {
								
							}
							public void ancestorAdded(AncestorEvent evt) {
								
							}
							public void ancestorMoved(AncestorEvent evt) {
								
								//TODO add your code for Liste.ancestorMoved
							}
						});
					}
```

Danke im Vorraus 

mfg


----------



## javimka (26. Nov 2009)

Du kannst dem Button einen ActionListener anhängen und wenn der ausgeführt wird, soll er die JList aktualisieren. Kommt natürlich drauf an, was da genau aktualisiert werden soll. Vielleicht reicht schon ein repain().


----------



## sonic14 (26. Nov 2009)

javimka hat gesagt.:


> Du kannst dem Button einen ActionListener anhängen und wenn der ausgeführt wird, soll er die JList aktualisieren. Kommt natürlich drauf an, was da genau aktualisiert werden soll. Vielleicht reicht schon ein repain().



Ja, schon klar, nur komm ich einfach nicht drauf wie ich dem button sagen soll das er genau DIE liste aktualisieren soll und WAS er aktualisieren soll. Und was er aktualisieren soll steht unter // dabei 

mfg


----------



## javimka (26. Nov 2009)

Mit "Liste aktualisieren" meinst du allem Anschein nach, eine neue zu erzeugen und nun diese an Stelle der alten zu verwenden, stimmt das?
Nachdem du die Liste dem Parent Container mit add hinzugefügt hast, versuche mal validate() nach dem setBounds Befehl aufzurufen. Das veranlasst den Container, seine Komponenten neu zu ordnen. 
Wieso machst du ein DefaultComboBoxModel für eine JList, wäre DefaultListModel nicht eher passend?


----------



## sonic14 (26. Nov 2009)

javimka hat gesagt.:


> Mit "Liste aktualisieren" meinst du allem Anschein nach, eine neue zu erzeugen und nun diese an Stelle der alten zu verwenden, stimmt das?
> Nachdem du die Liste dem Parent Container mit add hinzugefügt hast, versuche mal validate() nach dem setBounds Befehl aufzurufen. Das veranlasst den Container, seine Komponenten neu zu ordnen.
> Wieso machst du ein DefaultComboBoxModel für eine JList, wäre DefaultListModel nicht eher passend?



xD, das hat eclipse selber gmacht^^

äm naja schau, Ich füge ein spiel hinzu in eine ArrayList in einer anderen classe. Dann hab ich die Methode "gib aus liste" wo die einträge in der Arraylist ausgegeben werden. So, diese "gibausliste" hab ich mit der JListe verknüpft. Wenn ich jetzt aber ein Objekt in die Liste hinzufüge, Aktualisiert sich die JListe ja nicht von allein, also soll die JList wieder Aktualisiert werden indem sie die classe "gibausliste" erneut aufruft und dadurch eben 1 neues Objekt "aktualisiert".

Bsp.:

in der ArrayList stehen schon von anfang an drinnen:
hallo
lol 
Die "gibausliste" Methode Nimmt die Objekte von der ArrayList. Die JListe nimmt die Objekte von der "gibausliste". 
Jetzt füg ich ein spiel hinzu, Die Arraylist bekommt 1 Objekt mehr, geht weiter an die Methode "gibausliste" und jetzt soll sich die JListe aktualisieren also wieder die Methode "gibausliste" erneut durch eine Button aufrufen.

mfg


----------



## javimka (26. Nov 2009)

Ich würde nicht jedesmal eine neue Liste erstellen. 
Erstelle im Konstruktor ein DefaultListModel und dieses soll ein Attribut, also im Objekt gespeichert werden. Dann erstellst du eine JList mit dem Model als Argument und dann musst du mit der gar nicht mehr viel machen.
Deine gibausliste-Methode soll dann die neuen Objekte dem Model hinzufügen, einfach mit add und dieses sollte dann automatisch die JList neu zeichnen lassen.


----------



## sonic14 (26. Nov 2009)

Klingt logisch  aba umsetzten  D:. Werd mal mit der Idee zum Lehrer gehn .

Danke schomal

mfg


----------

