JTable Größe an Frame automatisch anpassen

RalU

Mitglied
Hallo,

wie kann man eine JTable, die in einem JScrollpane steckt - damit man auch die Spalten sieht - so anpassen, dass immer nur genau die Tabelle im Frame sichtbar wird - aber die Spalten z.B. nicht "verkleinert" werden, so dass man nur Teile des Inhalts sieht?

Wenn ich anstelle des JScrollPanes ein einfaches JPanel nehme und da die JTable aufnehme, funktioniert das gewünschte Verhalten tadellos, d.h. das darüberliegende JFrame zeigt ausschließlich die Tabelle an und auch immer den kompletten Inhalt der Spalten - allerdings ohne Spaltenüberschriften, weil ich in dem Fall ja kein JScrollpane verwendet habe.


Beispielcode:

Code:
...
public static void main(String args)
{
 MyTableModel tm = new MyTableModel(10,10) // <- 10 Zeilen, 10 Spalten (ohne Tabellenüberschriften)
 JScrollPane sp = new JScrollPane(new JTable(tm));
 
JFrame hauptframe = new JFrame();
hauptframe.add(sp);
hauptframe.pack();
 /* hierdurch wird leider nicht die Tabelle so an das JFrame angepasst, 
* dass der komplette Inhalt aller Tabellenzellen sichtbar ist. 
* Anders gesagt, das hauptframe umfasst nicht die gesamte Größe der JTable().
*/
hauptframe.setVisible(true);
}
Alternativer Bsp-Code mit JPanel anstelle von JScrollPane
Code:
...
public static void main(String args)
{
 MyTableModel tm = new MyTableModel(10,10) // <- 10 Zeilen, 10 Spalten (ohne Tabellenüberschriften)
 JPane p = new JPane();
 p.add(new JTable(tm));
JFrame hauptframe = new JFrame();
hauptframe.add(p);
hauptframe.pack();
 /* in dem Fall wird die Tabelle wie gewünscht angezeigt (ohne Spaltenüberschrifen). D. h. der Inhalt jeder
   * einzelnen Zelle ist komplett ersichtlich und das hauptframe passt sich der Größe der JTable an
*/
hauptframe.setVisible(true);
}
Wie kann ich das Verhalten des zweiten Beispiels so anpassen, dass es auch für das erste Bsp. gillt?

Gruß, Ralf
 
Zurück