Ich brauche meine JTable, um die Spaltenbreite automatisch an den Inhalt anzupassen. Ich fand die TableColumnAdjuster
Klasse sehr nützlich. Aber da ist ein kleines Problem. Angenommen, ich habe 5 Spalten und ihr Inhalt ist sehr kurz. Wenn ich in diesem Fall die automatische Anpassung verwende, werden die ersten vier Spaltenbreiten entsprechend ihrem Inhalt eingestellt und der gesamte Rest der Spalte wird der letzten Spalte zugewiesen. Bitte beachten Sie das Beispiel.Automatische Größenanpassung der JTable-Spaltenbreiten
Hier der letzten Spalte wird Balance
alle überschüssigen Raum gegeben. Was aber, wenn ich einer der mittleren Spalten diesen Platz geben muss? Im obigen Fall muss ich diesen Platz der dritten Spalte name
zuweisen. Ich habe versucht, die TableColumnAdjuster
Klasse adjustColumns()
Methode zu ändern. Aber ich konnte es nicht funktionieren.
Ich habe sowohl column.setPreferredWidth()
als auch column.setWidth()
versucht, um die Spaltengröße zu ändern. Aber es scheint nichts zu ändern. Wie kann ich die Spaltengröße eines JTable
effektiv ändern? Wenn es eine andere Alternative oder eine direkte Antwort auf mein Hauptproblem gibt, ist das besser. Vielen Dank!
Das ist fantastisch, endete damit. Ich habe vor dem setPreferredColumnModel-Aufruf eine Überprüfung hinzugefügt, die folgendermaßen aussieht: "if (width> 300) width = 300;" Das behebt einige Fälle, in denen ich wirklich lange Datenfelder anzeige. Ich würde vorschlagen, das zur Antwort hinzuzufügen - und Sie könnten auch min/max Breite extrahieren (Würde fantastische optionale Parameter machen - in der Tat werde ich das jetzt in meiner Codebasis tun.) (Ich wünschte ich wüsste es wenn es cool war, so etwas in jemandes Antwort zu bearbeiten ...Da es nicht CW ist, hasse ich den Inhalt ohne Erlaubnis zu ändern.) –
Hallo, @BillK Fühlen Sie sich frei, den Code zu bearbeiten/hinzufügen ... und wenn Sie einen Screenshot haben. ;) –
kann ich auch irgendwie den Header auswerten, damit sein Text nicht abgeschnitten wird? – Xerus