Hallo,
ich habe eine Frage und zwar wie schreibt man am besten Zellen einer JTable in ein java.awt.TextField
wenn sie angeklickt wurden?
Danke Mister XY Unbekannt
Ich weiß nicht ob ich dich richtig verstanden habe. Aber ich gehe mal davon aus das du eine Tabelle mit Strings hast. Jetzt stellt sich die Frage welches Tabellen Modell du nuzt. Hast du ein eigenes geschrieben oder hast du eine Matrix von Objekten?
Bei dem Zweiten brauchst du ncihts machen das macht das DefaultTableModel selbst. Wenn du ein eigenes Tabellen model hast mußt du die Methode setValue() überschreiben.
JTable table = new JTable(String[][] zeilen, String[] spalten)
und weise es mit
model = new DefaultTableModel(0,4)
und
table.setModel(model)
einem DefaultTableModel zu um die Methoden
model.addRow(String[] inhalte) und model.removeRow(int n) nutzen zu können
die table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION) ist gesetzt
und nun möchte ich wenn man auf eine Zelle einmal klickt das sich alle Spalten der Zeile n mit inhalte[] in
4 verschiedene Textfelder vom Typ java.awt.TextField schreiben
Für das was du vor hast denke ich mal mußt du ein eigenes Tabellenmodell schreiben, weil eine Martix die du der Tabelle übergibst nicht in der Größe veränderbar ist.
Warum sollte es nicht gehen, alle Zellen auszulesen, wenn man eine Zelle anklickt?
Die Klasse JTable implementiert das Interface java.util.EventListener, welches wiederum jede Menge Interfaces implementiert. So auch den MouseListener und den ActionListener. Ein MouseAdapter ist auch schon bereits implementiert.
Im Prinzip bräuchte man doch nur einen passenden Listener registrieren, seine Methode(n) überschreiben, bischen Code drum rum und fertig.
Allerdings rate ich von einer Mischung aus Swing und AWT ab.
(java.awt.Point) Point punkt =evt.getPoint();
int reihe=jTable1.rowAtPoint(punkt);
int spalte =jTable1.columnAtPoint(punkt);
String wert=jTable1.getValueAt(reihe,spalte); //sobekommt man den wert einer zelle
wenn du die werte einer zelle oder spalte haben willst
liest du die in einer schleife aus du weisst ja welche dimensionen deine tabelle hat
und schreibst jeden wert in ein extra textfeld