# Inhalt einer Zelle eine Table in ein TextField bekommen



## EndlessHeaven (15. Jul 2003)

Hab ne ScrollPaneTable und möchte jetzt meinetwegen aus der Spalte Server den Namen eines Servers in der ersten Reihe auslesen und den in ein Textfeld befördern.
Jemand ne Ahnung wie es geht,ich nämlich nicht  :cry:


----------



## DTR (15. Jul 2003)

Du musst einfach mit getValue den wert der Zelle abfragen, und mit setText wieder in das Textfeld einfügen.

Gruß
DTR


----------



## EndlessHeaven (15. Jul 2003)

getJTFhost().setText((String) ivjSPTAnzeige.getModel().getValueAt(ivjSPTAnzeige.getSelectedRow(),0));

hab das so aber scheint nicht zu gehen


----------



## DTR (15. Jul 2003)

Was bekommst du denn für Fehlermeldungen. Ohne weitere Hinweise ist es schwer ein Problem zu lösen, das man nicht kennt.


----------



## Guest (15. Jul 2003)

eine fehlermeldung kommt nicht. Scheint dem Compiler zu passen.
Nur wenn ich in der Table auf ne Reihe klicke tut er eben nichts rüber in das Textfeld.
Vielleicht stimmt jas was mit dem Listener nicht 


ivjSPTAnzeige.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

			ListSelectionModel rowSM = ivjSPTAnzeige.getSelectionModel();
			rowSM.addListSelectionListener
			(
				new ListSelectionListener() 
				{
    			public void valueChanged(ListSelectionEvent e) 
    			{
        		//Ignore extra messages.
        		if (e.getValueIsAdjusting()) return;

        		ListSelectionModel lsm =	(ListSelectionModel)e.getSource();
        		if (lsm.isSelectionEmpty()) 
        		{
            //no rows are selected
        		}
        		else 
        		{
            int selectedRow = lsm.getMinSelectionIndex();
            //selectedRow is selected

           	getJTFhost().setText((String) ivjSPTAnzeige.getModel().getValueAt(ivjSPTAnzeige.getSelectedRow(),0));
        		}
    			}
				}
			);


das is das ganze mit Listener


----------



## Nadja (15. Jul 2003)

Hmm... Ich kenne mich jetzt nicht besonders gut mit Swing/AWT aus aber ein bischen was ist mir ein-/aufgefallen:


```
int selectedRow = lsm.getMinSelectionIndex();
//selectedRow is selected
```

Wofür ist diese Zeile gut? Scheint ja nur eine temporäre, lokale Variable zu sein und du machst damit nichts weiter...


```
ivjSPTAnzeige.getModel().getValueAt(ivjSPTAnzeige.getSelectedRow(),0));
```

Hast Du schonmal überprüft was dieser Aufruf ivjSPTAnzeige.getSelectedRow() dir zurück gibt?


----------



## DTR (15. Jul 2003)

Fang am besten mal an die Fehlerquelle zu suchen. Wenn wir die Quelle kennen, können wir die vieleicht weiterhelfen.


----------



## Guest (15. Jul 2003)

ich hab den listener aus nem beispiel übernommen.
hab nich wirklich ahnung von dem zeug.
programmieranfänger  :?


----------



## DTR (15. Jul 2003)

Probier mal herauszu bekommen, ob der Code überhaupt ausgeführt wird, und wenn ja was das getValue() zurückgibt.


----------



## Nadja (15. Jul 2003)

Ich befürchte du wirst ein wenig testen müssen. Also, einfach mal Werte auf der Konsole ausgeben lassen, etc. Außerdem wirst du dir noch ein wenig mehr zum Thema Swing/AWT anlesen müssen... Es wird leider sehr schwer dir zu helfen, wenn du nicht genau weißt, was da passiert.

Aber jetzt erstmal zum Testen:
Kannst Du dir mal (mit System.out.println() zum Beispiel) folgendes ausgeben lassen, bitte?


```
System.out.println(ivjSPTAnzeige.getSelectedRow());
System.out.println(ivjSPTAnzeige.getModel().getValueAt(ivjSPTAnzeige.getSelectedRow(),0));
```

Am Besten kurz bevor du die Zeile 
	
	
	
	





```
getJTFhost().setText((String) ivjSPTAnzeige.getModel().getValueAt(ivjSPTAnzeige.getSelectedRow(),0));
```
 aufrufst.


----------



## Guest (15. Jul 2003)

krieg keine antwort auf System.out.println  :!:


----------



## DTR (15. Jul 2003)

Dann stimmt wohl wirklich etwas mit dem Listener nicht. Wie hast du denn den Listener Angemeldet?


----------



## Guest (15. Jul 2003)

was meinst du mit angemeldet?


----------



## DTR (15. Jul 2003)

...
add...Listener(my...Listener);
...


----------



## EndlessHeaven (15. Jul 2003)

ivjSPTAnzeige.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

			ListSelectionModel rowSM = ivjSPTAnzeige.getSelectionModel();
			rowSM.addListSelectionListener
			(
				new ListSelectionListener() 
				{
    			public void valueChanged(ListSelectionEvent e) 
    			{
        		//Ignore extra messages.
        		if (e.getValueIsAdjusting()) return;

        		ListSelectionModel lsm =	(ListSelectionModel)e.getSource();
        		if (lsm.isSelectionEmpty()) 
        		{
            //no rows are selected
        		}
        		else 
        		{
            int selectedRow = lsm.getMinSelectionIndex();
            //selectedRow is selected
           	getJTFhost().setText((String) ivjSPTAnzeige.getModel().getValueAt(ivjSPTAnzeige.getSelectedRow(),0));
        		}
    			}
				}
			);


----------



## DTR (15. Jul 2003)

Wo hast du denn die System.out's gesetzt?

PS: Als anfänger solltest du dir angewöhnen die Oberflächen selbst zu programmieren. Das klingt vieleicht kompliziert, hat aber den großen Vorteil, dass es 
a) Übersichtlicher ist als der Code, den irgendein Tool erzeugt und
b) Du lernst besser was da eigendlich passiert.


----------



## EndlessHeaven (16. Jul 2003)

Mag schon sein das man als Anfänger mehr lernt ohne tool.
Doch wenn ich gar kein Tool hab dann würd ich gar nicht weiter kommen.
Außerdem hasse ich es mit eclipse zu arbeiten.
Ich finds am Anfang gar nicht mal so schlecht wenn man sieht was der produziert wenn du da ein Feld machst oder sowas.
Kann man sich ja merken.
In der Schule habe ich sowieso solche Hilfen nicht zur verfügung.
Ich hab mein Ding da etwas umfunktioniert

Hab die Textfields auf dem einen Fenster wegggemacht.
Müsste doch auch irgendwie gehen, wenn ich in dem geöffneten Fenster die Reihe anklick und der die Daten in die Textfields des Hauptfenster überträgt oder?


----------



## DTR (16. Jul 2003)

Jetzt mal ehrlich, ist der Code, den dein Tool dir erzeugt hat übersichtlich genug, das du daraus lehrnen kannst? Also mir währe der zu komplex. Manschmal führen kleine schritte schneller zum Ziel. Und die Fehler finded man auch schneller wenn man weiß was man macht.


----------



## EndlessHeaven (16. Jul 2003)

manches klingt wirklich kompliziert da hast recht,aber deswegen werde ich jetzt kaum wo ich fast fertig bin nochmal von vorne anfangen!!!
Ich brauch ja nur noch den Wechsel der Datenbanken dann is ja fertig


----------



## DTR (16. Jul 2003)

Es geht übrigens beides, sowohl den Inhalt in die Textfelder des Hauptfensters als auch in die Textfelder eines Nebenfensters schieben. Du must nur die Listener richtig implementieren und anmelden, und die Komunikation zwischen den Klasse gewährleisten. Am besten ersetzt du den Listener den die das Tool erzeugt hat und schreibst wenigstens den neu.


----------



## EndlessHeaven (16. Jul 2003)

mecker nur rum


----------



## EndlessHeaven (16. Jul 2003)

ich würd dir gern mal screenshots schicken
geht das?


----------



## DTR (16. Jul 2003)

Das soll kein rumgemecker sein, ich will dir nur helfen, und das was ich schreibe ist meiner ansicht nach der bessere Weg.


----------



## EndlessHeaven (16. Jul 2003)

is weg


----------



## DTR (16. Jul 2003)

Ja was soll ich sagen. Die Screenshots haben mir nicht wirklich viel geholfen. Ich bin immernoch der meinung, das etwas mit dem listener nicht stimmt. Versuch mal den fehler genauer zu lokalisieren.


----------

