JTable PROBLEME

YelloW22

Erfahrenes Mitglied
hallo leute

ich brauch mal eure hilfe. im internet is so eine flut an infos (teils total verschiedene) zu JTable dass ich nich mehr durchblicke.

ich habe folgendes Problem:

Ich will eine ArrayList mit Objekten in eine JTable einfügen.
wie krieg ich das hin?

was ich auch noch suche: mal den generellen Aufbau einer JTable da ich da auch nich schlau draus werd.

danke schon mal
 
Was genau verstehst du denn dabei nicht?

Also eine der Überladungen des Konstruktors von JTable kann zwei Arrays erhalten, ein zweidimensionales für die Werte und ein eindimensionales für die Header-Beschriftungen. Für die Verarbeitung der Daten kann man das TableModel einer JTable verwenden. Eine sehr gute und leicht zu bedienende Implementierung bietet das DefaultTableModel, z.B. durch die Methode addRow() ist es sehr leicht eine neue Zeilen einzufügen. DefaultTableModel bietet auch einen Konstruktor, der zwei Arrays entgegennehmen kann, genauso wie auch bei JTable.

Ich mache das immer so: Ich erzeuge ein DefaultTableModel-Objekt (je nachdem wie und wann halt schon mit Daten im Konstruktor oder ohne) und übergebe dieses Objekt an JTable (entweder beim Erzeugen an den Konstruktor oder im Nachhinein über die Methode setModel()). Im weiteren Verlauf interessiert mich das JTable-Objekt dann nicht, weil ich die Daten über das Model einschleuse, lösche oder ändere.
 
wie krieg ich dann über das Model meinen Header rein?
ich kann irgendwie entweder einen Header setzen oder ein Model.
sobald ich das model setze verschwindet der Header.
 
Indem du beim Model in dem von mir erwähnten Konstruktor ein Array übergibst, das die Header beinhaltet.

EDIT:
Wenn du noch keine Daten übergeben willst, dann kannste auch nur die Header übergeben, im einfachsten Fall also so:
Java:
DefaultTableModel model = new DefaultTableModel(new String[] {"header1", "header2", "header3"}, 0);
JTable table = new JTable(model);
 
Zuletzt bearbeitet:
so jetzt noch eine letzte Frage:

fügt der automatisch für jedes Objekt eine neue Zeile ein oder drückt er alles in eine zeile wenn ich schreibe:

model.addRow ( liste.toArray ( ) ) ;




.
 
Zuletzt bearbeitet:
Die Methode addRow() von DefaultTableModel will nur ein Array oder einen Vector mit den Daten für die einzelnen Spalten. Mit addRow() wird eine neue Zeile eingefügt.
 
wie krieg ich dann alle Objekte aus der ArrayList in mein Model (sprich für jedes Objekt eine eigene Row )
 
Personendaten.

sprich eine Person ist ein Objekt und enthält Name, Ort, Tel und so weiter

ich will dass es dann in der Tabelle für jede Person eine neue Zeile gibt und Name, Ort etc richtig den Spalten zugeordnet werden
 
Zurück