Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden
bin in Sachen Java nicht sonderlich bewandert und hoffe ich kann mein Problem einigermaßen verständlich rüber bringen...
Ich habe in meinem Projekt ein Panel mit zwei übereinander angeordneten Tabellen, welche sich jeweils in einem eigenen ScrollPane befinden und über je ein TableModel verfügen. Die obere Tabelle hat einen Tabellenkopf und enthält die einzelnen Daten. Die untere Tabelle hat nur eine einzige Zeile mit den Summen der oberen Tabellenspalten. Die Daten beider Tabellen werden über ein DataObjekt bereitgestellt. Das funktioniert auch alles einwandfrei. Mein Problem ist das bei Benutzeränderung der Spaltenbreite der oberen Tabelle diese dann natürlich nicht mehr mit der unteren übereinstimmen. Wie kann ich es bewerkstelligen, dass bei einer entsprechenden Änderung am oberen Tabellenkopf auch die Spaltenbreiten der unteren Tabelle mit angepasst werden?
Ein weiteres Problem ist die Sortierung Nummerischer Werte in der oberen Tabelle. Diese scheinen von setAutoCreateRowSorter(true); als String interpretiert zu werden, obwohl die entsprechenden Werte als Integer geliefert werden!? In meinem Projekt habe ich noch weitere "einzelne" Tabellen und da werden Nummerische werte korrekt sortiert.
I have a JTable that is using a TableColumnModelListener() to detect when the column has been re-sized and I have some code I want to execute in the columnMarginChanged() method. How do I determine
stackoverflow.com
Ich hätte vermutet, dass Schritt 2 ausreicht, aber anscheined muss man noch einen Mauslistener verwenden.
In der Methode muss dann die entsprechende Spaltenbreite der anderen Tabelle gesetzt werden. Am Besten noch prüfen, ob sie bereits korrekt ist, dann gibt's weniger überflüssige Events.
Ohne das Modell und die Daten zu kennen, lässt sich zum Sorter nichts sagen. Du hast ja bereits gesagt, dass es in anderen funktioniert. Also gibt es bei dieser Tabelle etwas, das anders ist. Finde raus, was es ist.
Lass dir mal die Datentypen aller Zeilen dieser Spalte ausgeben, ich vermute mal, dass es da doch der eine oder andere String in das Modell geschafft hat.
@Neumi5694
Danke für den Hinweiß... aber ich merke schon das wird wohl leidert doch zu komplex für meine bescheidenen Verhältnisse.
Bez. Datentyp habe ich alles geprüft, aber ein String ist nicht darunter... selbst die Spalte mit den ID´s wird ja schon nicht korrekt sortiert. Und diese werden in den anderen Tabellen auch ausgegeben und da funktioniert es. Der einzige Unterschied ist hier eigentlich nur diese zusätzliche zweite Summentabelle.
@mihe7
Habe einfach keinerlei Idee, wie ich die Summen einfacher darstellen ließen... Wenn ich am Ende der Datentabelle einfach eine weitere Summelzeile anfüge, müsste ich ja das Sortieren unterbinden damit diese dann nicht plötzlich nach oben rutsch.
Die Tabellen haben ja unterschiedliche Bezeichnungen "dataTable" in "dataScrollPane" und "sumTable" in "sumScrollPane". Und dataTable.setAutoCreateRowSorter(true); sollte sich dann ja auch nur auf die Datentabelle beziehen!?
Hallo es sollte doch möglich sein eine Row in einer Tabelle zu fixieren. Ähnlich wie bei Excel.
Dann hast du nur eine Tabelle und die unterste oder erste Zeile bleibt stehen.
Wenn ich am Ende der Datentabelle einfach eine weitere Summelzeile anfüge, müsste ich ja das Sortieren unterbinden damit diese dann nicht plötzlich nach oben rutsch.