Mit Swing eine JTable erstellen

Kestrel

Mitglied
Hallo liebe User,

Ich stehe vor folgendem Problem:

Ich möchte eine Tabelle mit 5 Spalten und einer unbegrenzten Anzahl von Zeilen erstellen. Die Zeilen möchte ich später mit Daten aus einer externen Datei füllen.

Durch die Suchfunktion und Mr. :google: ist mir schon klar, dass ich dazu ein eigenes TableModel erstellen muss. Ich hab mich durch viele Beispiele gewühlt, jedoch keines davon richtig verstanden. Eventuell könnte ja einer von euch mir den Link zu einer gut verständlichen Erläuterung geben oder gar ein kleines Beispiel posten.....

Vielen Dank im vorraus

Gruß Kestrel
 
Hallo,

du brauchst hierfür nicht unbedingt ein eigenes TableModel schreiben, es geht auch erstmal so:
Code:
//Spalten erzeugen
String [] spalten = {"spalte1", "spalte2", "spalte3", "spalte4", "spalte5"};
//datenmatrix erzeugen
String [][] daten = new String [zeilenanzahl][5];

//befüllen
for(int i=0; i< zeilenanzahl; i++){
    daten[i][0]  = wert der spalte1 und zeile i;
    daten[i][1]  = wert der spalte2 und zeile i;
    daten[i][2]  = wert der spalte3 und zeile i;
    daten[i][3]  = wert der spalte4 und zeile i;
    daten[i][4]  = wert der spalte5 und zeile i;
}
//erzeugen der tabelle mit spaltenbezeichnungen und daten
JTable jTable = new JTable(daten, spalten);
//anezeigen, am besten in ner scrollpane
JScrollPane pane = new JScrollPane();
pane.setViewPortView(jTable);

//die einstellungen für größe und so musst du noch hinzufügen

So, hoffe ich hab nix übersehen und du kommst damit weiter;-)
Viele grüße

b600
 
Klappt alles ganz Prima ^^ Danke für die schnelle Hilfe

bis auf die Sache mit der Größe... Irgendwie juckt die Tabelle das kein Meter, wenn ich ihr Größen zuweise, hilft auch nix dem ScrollPane zu sagen, dass es größer werden soll.
 
Hey,
was meinst du denn genau mit der Größe
Normalerweise reicht, wenn du

jScrollPane.setSize(breite, höhe);

schreibst, die Tabelle wird dann automatisch angepasst!

Oder meinst du die einzelnen größen der Spalten !
Hier kannst du mittels:

jScrollPane.getColumne(Object o).setMaxWidth(int a); // oder setMinWidth(int a)

die Spaltenbreite einstellen
wenn du beide Methoden mit dem gleichen wert aufrufst, dann ist die spalte mit ner festen breite eingestellt.

Viele grüße
 
Ich hab meinen Fehler gefunden. >.<

Ich hatte das ScrollPanel auf ein Panel eines Tabs, welches wiederum einem TabbedPane zugewiesen war gelegt.

Ich habe dem Panel nun einfach per panel.setLayout(null) sein Standardlayout entzogen und nun kann ich die Größe beliebig anpassen.

Vielen Dank noch einmal für die schnelle und kompetente Hilfe.


Gruß Kestrel
 
Zurück