Inhalt von JTable in die Textdatei mit StringWidth schreiben

Iron Monkey

Bekanntes Mitglied
Hi!

Ich möchte die Inhalte der Tabelle in die Textdatei schreiben, aber die Spaltenbreite in der Textdatei soll überall gleich lang sein!

Wie gehe ich damit davor?
- Muss ich denn als Erstes, in der jeder Spalte der Tabelle die max. StringWidth ermitteln und dann die Inhalte mit den max. StringWidth in die Textdatei schreiben? Das ist aber sehr mühsam, wenn es sein muss!

- Gibt es noch andere Möglichkeiten?

Gruß
Iron Monkey
 
'andere Möglichkeiten' wären hier maximal fertige Codes, die genau derartiges leisten,
und dass es die gibt halte ich für so unwahrscheinlich, dass ich mir gleich ein eher besserwisserisches Posting wie dieses hier erlaube
(statt anderen Antworten Zeit zu geben)

an der fachlichen Notwendigkeit, alle Elemente anzuschauen, sich verschiedene Breiten zu merken usw. führt kein Weg dran vorbei,
abgesehen von vorher schon zur Laufzeit ständiger Beobachtung und Vorliegen dieser Informationen

genausogut könntest du wünschen, von unbekannten 1000 Zahlen mit einem Klick die kleinste zu erhalten,
ohne Anschauen aller Werte geht gar nichts..

mache deine Formatierung ruhig selber so wie du sie benötigst,
da gibt es so viele Parameter (Zwischenzeilen, Abstand-Halter, Leerzeichen, Tabs, Tabellen-Datentypen, Text mittig/ links/ rechts)
dass es nicht wirklich lohnt, dazu irgendwas an allgemeiner API anzubieten
 
Wie bereits gesagt, alle Strings lesen/laden und drüber iterieren -> längste String-Länge merken -> und dann für jeden String folgende Methode mit ermittelter String-Länge aufrufen :

Code:
/**
 * 
 */
public String appendBlanks(String source, int length) {
	String result = source != null ? source : "";
	if(length > source.length()) {
		result = String.format("%-" + Integer.toString(length) + "s", source);	
	}
	
	return result;			
}

Hab ich auch mal iwo kopiert 😉
 
Das ist aber sehr mühsam, wenn es sein muss!

Nur, wenn du es dir kompliziert machst. Eine Methode, der du deinen String übergibst und die dir deinen String formatiert zurückliefert (z.B. mit Leerzeichen aufgefüllt) ist denke ich nicht so viel Arbeit. Du übergibst jeden Zelleninhalt an die Methode und speicherst den zurückgegebenen Wert ab. Und die Methode könnte durchaus so aussehen, wie bei meinem Vorredner.
 

Neue Themen


Zurück
Oben