Swing Editorkit und Word Formularfeld

joe89

Aktives Mitglied
In einer Java-Applikation werden Daten erfasst, aus denen später ein Worddokument erstellt wird.

Texte in einem jTextpane entsprechen später nicht den Erwartungen hinsichtlich des Zeilenumbruchs und der Menge der erlaubten Zeilen, wenn das Worddokument erstellt wird.

Kann ich mit einem Editorkit die Eingabe so einstellen, dass

(a) die Schriftart/-grösse fest vorgegeben ist
(b) die Art des Zeilenumbruchs festgelegt ist
(c) der Anwender nur n-Zeilen eintragen kann ?

Das Eingabefeld soll den Attributen des Word-Formularfeldes weitgehend entsprechen. Gibt es alternative Methoden zu einem editorkit?

Vielen Dank.

joe89
 

joe89

Aktives Mitglied
Hallo diggaa1984,

vielen Dank für deine Antwort.

Inzwischen habe ich mich ein wenig mit Textfeldern beschäftigt. Ich möchte ein Eingabefeld erzeugen, dessen Inhalt sich in ein vorgegebenes und nicht änderbares Word Formularfeld übertragen lässt. Dazu ist es erforderlich, dass die gleiche Schriftart verwendet wird und die Zeilen an gleichen Stellen umbrochen wird.

Ich muss daher in der Java-Anwendung die Anzahl der Zeilen abfragen, um dem Anwender mitzuteilen, dass der verfügbare Platz im Word-Dokument ggf. nicht mehr ausreicht.

Ich plane einen jTextPane zu verwenden.

(a) Formatierungen kommen aus dem Styled Document
(b) die Breite des Eingabefeldes entspricht der Breite des Word-Formularfeldes
(c) Wie die Zeilen abgefragt werden können, weiss ich noch nicht richtig. Als Ersatz frage ich zunächst die Anzahl der Zeichen ab.

Soweit auf die Abfrage der Zeilenanzahl verzichtet werden kann, werde ich m.E. überhaupt kein modifiziertes Editorkit benötigen.

Gruss
joe89
 

diggaa1984

Top Contributor
ah ok, das geht ja in die richtige richtung :toll:

was das zählen der Zeilen angeht kannst du vielleicht etwas über die Elements des Documents etwas erreichen, oder im Notfall selber zählen (nach jedem Zeilenumbruch) .. wobei Letzteres eher nach Hack klingt als nach "state of the art" .. ich weiss zumindest, dass ich über bestehende Methoden die gesamte Zeile zu einem Wort ermitteln konnte.

Beim Zählen der Zeichenumbrüche sollte man dann folgendes wissen (DefaultEditorKit):
There are two properties which deal with newlines. The system property, line.separator, is defined to be platform-dependent, either "\n", "\r", or "\r\n". There is also a property defined in DefaultEditorKit, called EndOfLineStringProperty, which is defined automatically when a document is loaded, to be the first occurrence of any of the newline characters. When a document is loaded, EndOfLineStringProperty is set appropriately, and when the document is written back out, the EndOfLineStringProperty is used. But while the document is in memory, the "\n" character is used to define a newline, regardless of how the newline is defined when the document is on disk. Therefore, for searching purposes, "\n" should always be used. When a new document is created, and the EndOfLineStringProperty has not been defined, it will use the System property when writing out the document.
 
Zuletzt bearbeitet:

Ähnliche Java Themen


Oben