# String in JList



## Guest (21. Jun 2008)

Ich möchte einen String an eine JList anhängen.


```
JList jList=new JList();

String wort="baum";
```

Wie geht das jetzt?


----------



## SlaterB (21. Jun 2008)

http://java.sun.com/docs/books/tutorial/uiswing/components/list.html


----------



## Guest (21. Jun 2008)

Ich kann nicht


```
jList=new JList();
```

machen, da alles in einem ActionListener ist und in diesem fall jList final ist.
Gibt es einen anderen Weg?


----------



## Wildcard (22. Jun 2008)

In SlaterBs Link steht alles was du wissen musst


----------



## SlaterB (22. Jun 2008)

auf jeden Fall bietet dein Posting zu wenig Infos um das anderweitig zu beantworten,
final passt gar nicht zum Konzept 'im ActionListener erst erstellen',
warum final? machs doch einfach nicht-final


----------



## musiKk (22. Jun 2008)

SlaterB hat gesagt.:
			
		

> warum final? machs doch einfach nicht-final


Ich nehme mal an, es ist ein Problem im Sinne des folgenden:

```
JButton button = new JButton("foobar");
JButton button2;

button.addActionListener(new ActionListener() {
	@Override
	public void actionPerformed(ActionEvent e) {
		button2 = new JButton("barfoo");
	}
});
```
und das geht nicht, da "Cannot refer to a non-final variable button2 inside an inner class defined in a different method". Aber die Informationen des OP sind wirklich viel zu duenn und wir sind ja nicht beim Raetselraten.


----------



## Guest (23. Jun 2008)

ok nächster Versuch. Das ist meine Klasse:


```
public Testklasse(final JList jList)
	{
		
		this.setLayout(new BorderLayout(5,5));

		this.add(enter,BorderLayout.CENTER);
		
		ActionListener al = new ActionListener() {
			public void actionPerformed(ActionEvent actionEvent) {
				
				String[] woerter={...};
				
			    DefaultListModel model = new DefaultListModel();
				
			    for (String s : woerter)
			    	model.addElement( s );

                          jList=new JList(model);
			}
		};
		enter.addActionListener(al);
			
	}
```

Warum funktioniert das denn jetzt nicht?[/quote]


----------



## SlaterB (23. Jun 2008)

diese Klasse ist nicht ausführbar und du schreibst weder von Compiler-Fehlermeldungen noch Exceptions zur Laufzeit,
ah ja..

wahrscheinlich gehts aber immer noch darum, dass einer finalen Variable nichts zugewiesen werden kann?
das hatten wir doch schon?


----------



## Guest (23. Jun 2008)

Ja aber ich weiß immer noch nicht wie ich es beheben könnte...


----------



## Guest (23. Jun 2008)

du arbeitest nicht auf der JList sondern auf dem DefaultListModel.
Heisst also du übergibst einfach ein fertig initialisierte JList.

über (DefaultListModel) jList.getModel; kommst du an den Vector.Den du dann entsprechend über clear löschen kannst.Und über add befüllen.


----------



## SlaterB (23. Jun 2008)

> Ja aber ich weiß immer noch nicht wie ich es beheben könnte...

soweit waren wir schon gestern:



			
				SlaterB hat gesagt.:
			
		

> auf jeden Fall bietet dein Posting zu wenig Infos um das anderweitig zu beantworten,
> final passt gar nicht zum Konzept 'im ActionListener erst erstellen',
> warum final? machs doch einfach nicht-final



natürlich könnte man auch viel mehr erzählen,
gast vor mir hat z.B. schon einiges gesagt,

aber ich stell mich mal extradumm, 
warum Lösungen erraten und aufzählen, während du nichtmal das Problem genauer erklären magst?


----------



## Guest (23. Jun 2008)

Ok danke an alle hat geklappt. Ich habe eigentlich nur die Methode setModel gesucht.
Naja egal.

Ichbhabe aber noch eineweitere Frage. Ich habe die JList mit dem BorderLayout links am Rand positioniert. Wenn sie leer ist,
dann ist sie aber nicht zu sehen. Kann ich ihr irgendwie eine Mindestbreite geben?


----------

