JTable Zellen zusammenfassen ?
-
Gibt es die möglichkeit über das Table Model oder den TableCellRenderer Zellen
von verschiedenen Spalten zusammen zu fassen ?Ich möchte folgendes machen:
Ich habe x Tabellen mit jeweils 3 spalten und möchte diese nebeneinander in einer Tabelle anzeigen lassen.
Im moment packe ich die Tabellen mit Hilfe eines TableCellRenderers in eine andere Tabelle rein. Leider checkt dann die JScrollPane nicht wie breit das ganze ist und läßt mich nur den Vertikalen Scroller benutzen.Meine Idee wäre jetzt die Daten alle in eine Tabelle zu tun und jeweils die oberen drei Zellen zusammen zu fassen um da ne Überschrift rein zu packen.
Was mir helfen würde:
-Wie fasse ich Zellen zusammen so das ich mir damit Überschriften basteln kann ?
-Wie erstelle ich Tabellen überschriften, die sich auf mehr als eine Spalte beziehen ?
-Wie bringe ich das Scrollpane dazu, zu erkennen das meine Tabelle wesentlich breiter ist, als das was angezeigt wird ?
-
In der hoffnung das hier doch jemand Java programmieren kann hier nochmal nen bissel Quellcode:
/*Array für die Tabellen die ich in einer anderen Tabelle anzeigen will*/ ArrayList<COverviewTable> tables = new ArrayList<COverviewTable>(); /*Inhalt der Tabellen*/ ArrayList<CMonth> months = CFrameManager.getMainFrame().getMonthPanel().getAllSelectedMonth(); /*Die Tabellen erstellen und dabei die größe von 2 von drei spalten setzen */ for(int i=0; i < months.size(); ++i) { COverviewTable t = new COverviewTable(new CDayPanelTableModel(months.get(i)), new CDayTableCellRenderer()); t.getColumnModel().getColumn(0).setMaxWidth(30); t.getColumnModel().getColumn(0).setMinWidth(30); t.getColumnModel().getColumn(1).setMaxWidth(80); t.getColumnModel().getColumn(1).setMinWidth(80); tables.add(t); } /*Die Tabelle in der ich die andere Tabellen anzeigen lasse*/ extendedTable = new COverviewTable(new COverviewExtendedTableModel(months), new COverviewExtendedTableCellRenderer(tables)); /*setzen einer mindestgröße von spalten in der haupttabelle*/ for(int i=0 ; i < months.size(); ++i) { extendedTable.getColumnModel().getColumn(i).setMinWidth(200); } scrollPane = new JScrollPane(extendedTable); extendedTable.setRowHeight(500); extendedTable.setPreferredSize(new Dimension(1000,500)); extendedTable.setFillsViewportHeight(true); scrollPane.revalidate();
So erstelle ich meine Tabellen, nun stellt sich mir die Frage warum die Scrollpane mich nicht Vertikal scrollen lässt wenn der Inhalt nicht komplett angezeigt werden kann.