Inhalt einer Zelle eine Table in ein TextField bekommen

Status
Nicht offen für weitere Antworten.
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:
 
Du musst einfach mit getValue den wert der Zelle abfragen, und mit setText wieder in das Textfeld einfügen.

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

hab das so aber scheint nicht zu gehen
 
Was bekommst du denn für Fehlermeldungen. Ohne weitere Hinweise ist es schwer ein Problem zu lösen, das man nicht kennt.
 
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
 
Hmm... Ich kenne mich jetzt nicht besonders gut mit Swing/AWT aus aber ein bischen was ist mir ein-/aufgefallen:

Code:
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...

Code:
ivjSPTAnzeige.getModel().getValueAt(ivjSPTAnzeige.getSelectedRow(),0));

Hast Du schonmal überprüft was dieser Aufruf ivjSPTAnzeige.getSelectedRow() dir zurück gibt?
 
Fang am besten mal an die Fehlerquelle zu suchen. Wenn wir die Quelle kennen, können wir die vieleicht weiterhelfen.
 
ich hab den listener aus nem beispiel übernommen.
hab nich wirklich ahnung von dem zeug.
programmieranfänger :?
 
Probier mal herauszu bekommen, ob der Code überhaupt ausgeführt wird, und wenn ja was das getValue() zurückgibt.
 
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?

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

Am Besten kurz bevor du die Zeile
Code:
getJTFhost().setText((String) ivjSPTAnzeige.getModel().getValueAt(ivjSPTAnzeige.getSelectedRow(),0));
aufrufst.
 
Dann stimmt wohl wirklich etwas mit dem Listener nicht. Wie hast du denn den Listener Angemeldet?
 
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));
}
}
}
);
 
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.
 
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?
 
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.
 
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
 
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.
 
Das soll kein rumgemecker sein, ich will dir nur helfen, und das was ich schreibe ist meiner ansicht nach der bessere Weg.
 
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.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben