Hallo,
ich habe die Spaltengröße meiner Tabelle mit der folgende Funktion erstellt, die Spaltengrö-ße werden richtig erzeugt aber die Spaltennamen sind zu lang, deshalb habe ich eine private Funktion erstellt die mir die Spaltennamen an die Spaltengröße anpasst, mit dem Debuger scheint das richtig, aber die Tabelle zeigt die angepassten Spaltennamen nicht?
Wie kann ich die Spaltennamen an die Spaltengröße anpassen bzw. kann ich ein Zeilenum-bruch im Spaltenname einsetzen?
ich habe die Spaltengröße meiner Tabelle mit der folgende Funktion erstellt, die Spaltengrö-ße werden richtig erzeugt aber die Spaltennamen sind zu lang, deshalb habe ich eine private Funktion erstellt die mir die Spaltennamen an die Spaltengröße anpasst, mit dem Debuger scheint das richtig, aber die Tabelle zeigt die angepassten Spaltennamen nicht?
Wie kann ich die Spaltennamen an die Spaltengröße anpassen bzw. kann ich ein Zeilenum-bruch im Spaltenname einsetzen?
Code:
private void setDefaultTableColumn(){
int fenBreite = getFensterBreite();
int zahlSpalten = spaltenNamen.length;
int kleineSpaltePix = pixelProStelle * kleineSpalStell;
// 10 kleine Spalten
int groseSpaltenPix = (fenBreite - (zahlKleineSpal * kleineSpaltePix)) / zahlGrosseSpal;
String spaltName = "";
int spalteBreite = 0;
TableColumn col = new TableColumn();
int j = 0;
for (int i = 0; i < zahlSpalten; ++i) {
if (i == kleineSpalten[j]) {
spalteBreite = kleineSpaltePix;
if (j < kleineSpalten.length - 1)
j++;
}
else {
spalteBreite = groseSpaltenPix;
}
spaltName = spaltenNamen[i];
if (spaltName.length() > spalteBreite)
spaltenNamen[i] = zerlegeZelle(spaltName, spalteBreite); meinTabelle.getColumnModel().getColumn(i).setPreferredWidth(spalteBreite);
}
}
private String zerlegeZelle(String inputStr, int zeleBreite){
String OutputStr = "", teilStr = "";
int i = 0, inputLenght = 0, restStrLength = 0;
inputLenght = inputStr.length();
restStrLength = inputLenght;
String trenZeichen = "\n";
// 6 Pixel = 1 Buchstab
zeleBreite = zeleBreite;
while (restStrLength > zeleBreite){
// Teile die Input String in der Breite-2, weil es wird am Endes
// des Teilstringes -\n eingefugt.
teilStr = inputStr.substring(i, i+zeleBreite-2);
// Ist das letze BuchStab ein Lehrzeichen oder "-" braucht man beim Zeilenumbruch keine "-" am Ende
// des Wortes einzufügen.
if (teilStr.charAt(teilStr.length()-1) == '\r' || teilStr.charAt(teilStr.length()-1) == ' ' ||
teilStr.charAt(teilStr.length()-1) == '-')
trenZeichen = "\n";
else
trenZeichen = "-\n";
OutputStr += teilStr.trim() + trenZeichen;
i += zeleBreite-2;
restStrLength = inputLenght - i;
}
if (restStrLength > 0)
OutputStr += inputStr.substring(i, i+restStrLength).trim();
return OutputStr;
}