TextArea Zeichenabstand gleich machen

learningbydoing

Aktives Mitglied
Hallo zusammen,

ich habe gerade Schwierigkeiten beim gleichmäßigen Darstellen von Zeichenabständen. Wichtig hierbei zu wissen wäre: das Programm ist Mehrsprachig und die Zeichen (Satzlänge) kann dadurch variieren.
Weniger Worte mehr zeigen:

Ist-Zustand:
Gerade habe ich es mit "\t" gelöst.

Der Code für das Fenster:
Java:
parameterTextArea.setText(" " + stringLengthEdit(listingGui + ":") + "\t\t\t" + pathArguments.preAbsolutePath() + "\n"
                + " " + stringLengthEdit(checksumFile + ":") + "\t\t\t" + pathArguments.absolutePath() + "\\" + "test.txt");


Die Darstellung im Fenster:
In Deutsch:
2022_10_13_15_34_55_Window.jpg
In Englisch:
1665668357291.png

Soll-Zustand:
Ich möchte, dass bei egal welcher Sprache der Rechte Teil parallel untereinander steht wie bei der Darstellung in Englisch.


Vielen Dank schon einmal im Voraus!😀
 
Eventuell kommst du damit durch zu probieren wieviele Tabs du brauchst um auf die richtige Position zu kommen, also du musst ausrechnen wieviele Tabs du brauchst damit du auf den rechten Rand kommst wo der Rest anfangen soll.

Das kann nicht funktioniere, und zwar schlicht und ergreifend deswegen weil du eine proportionale Schriftart verwendest. Das bedeutet unterschiedliche Zeichen sind unterschiedlich breit, also man kann nur "zufaellig" bei der richtigen Ausrichtung ankommen. Was du willst ist eine nicht-proportionale Schrift wo jedes Zeichen die selbe Breite hat.

Ansonsten kannst du nur die Strings abmessen wie sie fertig gerendert aussehen, und dann versuchen den Rest anhand dessen auszurichten.
 
Nicht-Proportionale Schriftart verwenden, dann kannst du Leerzeichen nehmen bis du auf Spalte X bist.

Wenn die Tabs immer auf die selbe Position hinspringen (weisz nicht mehr ob dem so war oder nicht), kommst du damit durch die Anzahl der Tabs auszurechnen die du brauchst bist du wieder bei Spalte X bist. Haengt aber wieder von der Tab-Breite ab.

Vielleicht dich lieber `Label`s in einem GridLayout?
 
Wenn Du so eine Tabelle haben willst: Evtl. ist TextArea da einfach das falsche Control. HTMLEditor wäre eine Alternative, wenn du da neben der Tabelle noch andere Dinge brauchst. Ansonsten wäre auch die Möglichkeit gegeben, dass man das auch wirklich als Tabelle aufbaut.
 
Java:
txtArea.setText(String.format("%-3s%-20s%-5s%-5s%n", num, name, stocks, req));
In diesem Beispiel sind 3 Zeichen für num, 20 für name und 5 für stocks und req vergeben, also ein Art Tabelle wenn man das auf mehrere Zeilen anwendet. Natürlich funktioniert das nur mit einer Nicht-Proportionalen Schriftart.
 

Zurück
Oben