Ein Arraywert in einen JTextField setzen

pdikij

Mitglied
GutenTag!

Ich habe momentan folgendes Problem:

Ich habe eine JTable die aus einer DB die Werte erhällt.
Dann beim anklicken einer Zeile werden die Werte der Spalten in einen Array eingelesen.
Nun soll einer dieser Werte in einem JTextField erscheinen... Und dies Funktioniert nicht. :(
Bis jetzt habe ich das wie folgt versucht:
Java:
private String table;
private Object[] row;
private int rowPos =0;

	jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
			public void mouseClicked(java.awt.event.MouseEvent e) {
							
					if(e.getClickCount() == 1)
						{
						    JTable temp = (JTable)e.getSource();
							rowPos = (int)temp.getSelectedRow();
							row = new Object[temp.getColumnCount()];
							for(int i=0;i<row.length;i++){
					        	row[i] = temp.getValueAt(rowPos,i);
					        	System.out.print(row[i]+";");} // Da kontrolliere ich ob die richtigen Werte eingelesen werden, klappt!
							if (table.equals("bestand")){
								updateWerte(1);
							}
						}
					
					

		}

			private void updateWerte(int i) {
				switch (i) {
					case 1:
							tfHwTyp.setText(row[8].toString()); // er kommt auch da rein
				}
			}  

		
		});

Bis jetzt habe ich überall gesucht wie ich das organisieren sollte, fand aber noch nichts...
Könnte mir jemand bei meinem Problem helfen?:confused:
Vielen Dank

pdikij
 
Hallo!

Ich hab gerade ausprobiert und es ist wirklich leer...
Wie könnte man das jetzt machen das da der Wert aus Tabelle steht...

Gruß

pdikij
 
Bist du sicher, dass an der Position in der Tabelle überhaupt was steht, bzw. dass du überhaupt die richtige Spalte ansprichst.

MFG

zEriX
 
Gib doch einfach mal das komplette Array aus, wenn du den Text setzen willst.

MFG

zEriX
 
In meinem obigen Quellcode Zeile 15 gebe den Array aus, da sind auch alle Werte gesetzt...
Bloß die Werte kommen nie in der updateWerte - Funktion an...
 
Hallo,

sollte das:
Java:
row = new Object[temp.getColumnCount()];
nicht eher so aussehen:
Java:
row = new Object[temp.getRowCount()];

Ansonsten würde ich, wie zerix schon vorgeschlagen hat, vor dem Setzen des Wertes ins Textfeld den Wert nochmal ausgeben:
Java:
System.out.println("row[8]=" + row[8]);
man weiss sonst nie, was da in Zeile 8 steht...

Grüße
Vincent
 
Also in der Update funktion steht folgendes:

Java:
private void updateWerte(int i, Object row[]) {
		switch (i) {
			case 1:
					System.out.println("Hallo"+row[8]+"Hier steht ein Text");
					tfHwTyp.setText(row[8].toString() + "1");
		}
	}

Die Ausgabe sieht dabei so aus:

Code:
HalloHier steht ein Text
 
Zurück