JTable: Einzelne Zeilen einfügen + Header Problem

  • Themenstarter Themenstarter Tobias Köhler
  • Beginndatum Beginndatum
T

Tobias Köhler

Moinmoin:)

Ich habe gerade meine Ausbildung angefangen und stoße momentan in die weite Welt der Sprache Java vor. Mein erstes großes Problem betrifft nun die Swing-Komponente JTable(und in Kombination mit JScrollPane).

Als wichtigstes erstmal: Wie schaffe ich es, dass bei dem Klick auf einen Button, die Daten aus den TextFields ins JTable kommen? Entweder bekommen ich eine NullPointerException oder er macht rein gar nix.

Das zweite Problem ist folgendes: meine Tabelle hat keine Überschrift. Wenn ich aber diese in JSrollPane einbette, zwar schon, aber leider geht die Tabelle dann übers gesamte Fenster und nix anderes wird mehr angezeigt(zB Buttons).
Lass ich sie aber weg, hab ich keine Headerzeile in der Tabelle:(

Ich hoffe, ihr könnt mir helfen und dass solche Fragen eher ein Kinderspiel sind.;-)
MfG
 
Bei einer JTable werden tatsächlich erst die Header angezeigt sofern sie sich in einer ScrollPane befindet.

Dass dann keine anderen Element mehr sichtbar sind wird an deinem Layout liegen. Welches benutzt du denn?

Sehr viele Informationen zu Anfängerfragen findest du hier: Java ist auch eine Insel: JTable

Um Werte in der Tabelle zu setzen kannst du dir das darunter liegende Model (welches die Daten hält) mit getModel holen und darauf dann mit setValueAt(value, row, column) die Werte setzen.

Durch getRowCount bekommst du vom Model die Anzahl vorhandener Tabellenzeilen. Damit kannst du dann ermitteln welche Nummer eine neue Zeile hat und dies in setValueAt verwenden.
 
Danke für die schnelle Antwort:)
Ich habe gar kein Layout benutzt, sondern es mit Koordinaten bisher zugewiesen. Welches Layout ist denn empfehlenswert?

Das mit der JTable klingt einleuchtend, werde ich gleich mal ausprobieren.
DANKE :)
 
Hier ein Kapitel über die Layoutmanager

Ich benutze meist das GridBagLayout. Um all deine Komponenten zu sehen kannst du aber auch erstmal ein FlowLayout nehmen.

Für Applikationen die keiner festen Auflösung und Fenstergröße unterliegen sollte man eigentlich nie Koordinaten direkt angeben sondern dies immer über Layouts regeln.
 
Zurück