Discussion:
zeilenumbrüche in datei?
(zu alt für eine Antwort)
Enrico Tröger
2004-01-28 12:44:52 UTC
Permalink
hi ng,

ich schreibe mit folgendem code text in eine datei:

File file = new File(fileName);
FileOutputStream out = new FileOutputStream(file);
byte[] b = text.getBytes();
out.write(b);

das funzt auch ganz gut.
aber der String text enthält auch \n für zeilenumbrüche. dummerweise
wird das aber nich in die datei geschrieben.
also in der datei sind wieder die \n als text, noch als zeilenumbrüche.

ich hab so ne leise vermutung, dass das an getBytes() liegen könnte.
aber ich hab keine ahnung, was ich da machen kann.

danke für eure hilfe.


Gruß
Enrico
--
My software never has bugs... it just develops random features...
Daniel Bleisteiner
2004-01-28 12:51:22 UTC
Permalink
Post by Enrico Tröger
aber der String text enthält auch \n für zeilenumbrüche. dummerweise
wird das aber nich in die datei geschrieben.
Womit schaust Du dir denn die Datei danach an? Möglicherweise erwartet der
Editor \r\n als Zeilenumbruch. Und prüfe auch den String nochmal... hat er
Umbrüche, wenn Du ihn per System.out.println() ausgibst?
--
Daniel Bleisteiner
Wolfgang Stagl
2004-01-28 12:52:51 UTC
Permalink
Post by Enrico Tröger
hi ng,
File file = new File(fileName);
FileOutputStream out = new FileOutputStream(file);
byte[] b = text.getBytes();
out.write(b);
das funzt auch ganz gut.
aber der String text enthält auch \n für zeilenumbrüche. dummerweise
wird das aber nich in die datei geschrieben.
also in der datei sind wieder die \n als text, noch als zeilenumbrüche.
Hi ! ich empfehle dir schon in Hinblick auf korrektes Encoding etc.
FileWriter zu verwenden wenn du TextDateien schreibst.

//sollte funktionieren habs aber ned unittelbar ausprobiert
void writeToFile (String text) throws IOException {
File file = new File("test.txt");
FileWriter fw = new FileWriter(file);
fw.write(text);
fw.close();
}

du ersparst dir damit auch den byteconvert ...
Post by Enrico Tröger
ich hab so ne leise vermutung, dass das an getBytes() liegen könnte.
aber ich hab keine ahnung, was ich da machen kann.
danke für eure hilfe.
Gruß
Enrico
Boris Glawe
2004-01-28 13:42:59 UTC
Permalink
Habe das gleiche Problem mit Strings, die in einem Label angezeigt werden
sollen. Wenn die ein '\n' beinhalten, dann wird das '\n' einfach ignoriert, kein
Zeilenumbrucht, aber auch nicht als Text dargestellt. Gibt's da vielleicht
abhilfe ??
Enrico Tröger
2004-01-28 14:37:57 UTC
Permalink
Post by Wolfgang Stagl
Post by Enrico Tröger
hi ng,
File file = new File(fileName);
FileOutputStream out = new FileOutputStream(file);
byte[] b = text.getBytes();
out.write(b);
das funzt auch ganz gut.
aber der String text enthält auch \n für zeilenumbrüche. dummerweise
wird das aber nich in die datei geschrieben.
also in der datei sind wieder die \n als text, noch als zeilenumbrüche.
Hi ! ich empfehle dir schon in Hinblick auf korrektes Encoding etc.
FileWriter zu verwenden wenn du TextDateien schreibst.
//sollte funktionieren habs aber ned unittelbar ausprobiert
void writeToFile (String text) throws IOException {
File file = new File("test.txt");
FileWriter fw = new FileWriter(file);
fw.write(text);
fw.close();
}
du ersparst dir damit auch den byteconvert ...
vielen dank, geht damit aber auch nicht.

also mein encoding ist utf8.
habe es auch mit \r\n probiert, wiederum ohne erfolg.

finde das doof, will einfach nur text in eine datei schreiben.
kann doch nich so schwer sein.


Gruß
Enrico
[ PartySOKe.de ]
--
Meine Homepage ???
http://enrico.PartySOKe.de
Marco Schmidt
2004-01-28 15:23:20 UTC
Permalink
Enrico Tröger:

[...]
Post by Enrico Tröger
also mein encoding ist utf8.
Wo denn genau?
Post by Enrico Tröger
habe es auch mit \r\n probiert, wiederum ohne erfolg.
finde das doof, will einfach nur text in eine datei schreiben.
kann doch nich so schwer sein.
Ist es auch nicht. Dein Code lauffähig gemacht:

import java.io.*;

public class test {
public static void main(String[] args) throws IOException
{

File file = new File("c:\\test.txt");
FileOutputStream out = new FileOutputStream(file);
String text = "bla\nblubb";
byte[] b = text.getBytes();
out.write(b);
out.close();
}
}

schreibt bei mir zwei Zeilen in eine Datei.

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Enrico Tröger
2004-01-28 15:48:46 UTC
Permalink
Post by Marco Schmidt
[...]
import java.io.*;
public class test {
public static void main(String[] args) throws IOException
{
File file = new File("c:\\test.txt");
FileOutputStream out = new FileOutputStream(file);
String text = "bla\nblubb";
byte[] b = text.getBytes();
out.write(b);
out.close();
}
}
schreibt bei mir zwei Zeilen in eine Datei.
also habe deinen code übernommen, wiederum ohne erfolg.

ich sage mal dazu, dass ich unter linux mit eclipse 3 M5 arbeite. aber das
dürfte nich wirklich das prob sein, oder?

lesen tu ich das file mit notepad(windows), midnight commander und kate.
keines der progs zeigt mir nen zeilenumbruch an.

ich verzweifel nochmal.


Gruß
Enrico
--
Der Link - Counter
http://lc.emgame.de
Sascha Broich
2004-01-28 16:02:31 UTC
Permalink
Post by Enrico Tröger
Post by Marco Schmidt
[...]
import java.io.*;
public class test {
public static void main(String[] args) throws IOException
{
File file = new File("c:\\test.txt");
FileOutputStream out = new FileOutputStream(file);
String text = "bla\nblubb";
byte[] b = text.getBytes();
out.write(b);
out.close();
}
}
schreibt bei mir zwei Zeilen in eine Datei.
also habe deinen code übernommen, wiederum ohne erfolg.
ich sage mal dazu, dass ich unter linux mit eclipse 3 M5 arbeite. aber das
dürfte nich wirklich das prob sein, oder?
lesen tu ich das file mit notepad(windows), midnight commander und kate.
keines der progs zeigt mir nen zeilenumbruch an.
ich verzweifel nochmal.
Welches Encoding verwendest du zum Speichern?

Schau dir doch mal die bytes an, die er rausschreibt:

for(int i=0;i<b.length;i++)
{
System.out.print(" "+((int)b[i]));
}
Da sollte ja dein '\n' = 13 auftauchen.


Sascha Broich
--
Früher war alles besser.
Aber dann wurden die Pyramiden gebaut.
Marco Schmidt
2004-01-28 16:19:06 UTC
Permalink
Sascha Broich:

[...]
Post by Sascha Broich
for(int i=0;i<b.length;i++)
{
System.out.print(" "+((int)b[i]));
}
Da sollte ja dein '\n' = 13 auftauchen.
\n ist dezimal 10.

Ich würde einfach mal die Datei in einem Hexeditor laden, da sieht
man's dann als 0x0a.

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Enrico Tröger
2004-01-28 16:25:44 UTC
Permalink
Post by Sascha Broich
Post by Enrico Tröger
Post by Marco Schmidt
[...]
[..]
Post by Sascha Broich
Post by Enrico Tröger
Post by Marco Schmidt
schreibt bei mir zwei Zeilen in eine Datei.
also habe deinen code übernommen, wiederum ohne erfolg.
ich sage mal dazu, dass ich unter linux mit eclipse 3 M5 arbeite. aber
das dürfte nich wirklich das prob sein, oder?
lesen tu ich das file mit notepad(windows), midnight commander und kate.
keines der progs zeigt mir nen zeilenumbruch an.
ich verzweifel nochmal.
Welches Encoding verwendest du zum Speichern?
UTF8, laut vorgabe
Post by Sascha Broich
for(int i=0;i<b.length;i++)
{
System.out.print(" "+((int)b[i]));
}
Da sollte ja dein '\n' = 13 auftauchen.
tut es aber nicht. da steht keine 13 drin.


Gruß
Enrico
Marco Schmidt
2004-01-28 16:38:12 UTC
Permalink
Post by Enrico Tröger
Post by Sascha Broich
Welches Encoding verwendest du zum Speichern?
UTF8, laut vorgabe
Nochmal meine Frage: Wo wird UTF-8 im Java-Code oder in den
Einstellungen festgelegt?
Post by Enrico Tröger
Post by Sascha Broich
Da sollte ja dein '\n' = 13 auftauchen.
tut es aber nicht. da steht keine 13 drin.
Es sollte auch 10 bzw. 0x0a sein.

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Enrico Tröger
2004-01-28 17:08:06 UTC
Permalink
Post by Marco Schmidt
Post by Enrico Tröger
Post by Sascha Broich
Welches Encoding verwendest du zum Speichern?
UTF8, laut vorgabe
Nochmal meine Frage: Wo wird UTF-8 im Java-Code oder in den
Einstellungen festgelegt?
gar nicht.
das is, nehme ich ma an, default-wert.
weil habe nirgends was von encoding festgelegt.
Post by Marco Schmidt
Post by Enrico Tröger
Post by Sascha Broich
Da sollte ja dein '\n' = 13 auftauchen.
tut es aber nicht. da steht keine 13 drin.
Es sollte auch 10 bzw. 0x0a sein.
yo, ich habe ganz am ende zwar ein 0x0a, aber da hilft mir nicht.


Gruß
Enrico
Marco Schmidt
2004-01-28 17:33:35 UTC
Permalink
Post by Enrico Tröger
Post by Marco Schmidt
Nochmal meine Frage: Wo wird UTF-8 im Java-Code oder in den
Einstellungen festgelegt?
gar nicht.
das is, nehme ich ma an, default-wert.
weil habe nirgends was von encoding festgelegt.
Vielleicht solltest Du das mal überprüfen. Ausgabe von
System.getProperty("file.encoding"); Allerdings dürfte der
Stringinhalt der Schlüssel sein (s.u.).
Post by Enrico Tröger
Post by Marco Schmidt
Post by Enrico Tröger
Post by Sascha Broich
Da sollte ja dein '\n' = 13 auftauchen.
tut es aber nicht. da steht keine 13 drin.
Es sollte auch 10 bzw. 0x0a sein.
yo, ich habe ganz am ende zwar ein 0x0a, aber da hilft mir nicht.
Was steht denn nun im String text eigentlich drin, bevor Du ihn in die
Datei schreibst? Hast Du den mal zeichenweise ausgeben lassen, wie
anderswo vorgeschlagen?

Warum nimmst Du eigentlich nicht FileWriter? Das ist der normale Weg,
um mit Java Text in eine Datei zu schreiben.

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Enrico Tröger
2004-01-28 18:10:26 UTC
Permalink
Post by Marco Schmidt
Post by Enrico Tröger
Post by Marco Schmidt
Nochmal meine Frage: Wo wird UTF-8 im Java-Code oder in den
Einstellungen festgelegt?
gar nicht.
das is, nehme ich ma an, default-wert.
weil habe nirgends was von encoding festgelegt.
Vielleicht solltest Du das mal überprüfen. Ausgabe von
System.getProperty("file.encoding"); Allerdings dürfte der
Stringinhalt der Schlüssel sein (s.u.).
das liefert mir, wie erwartet, UTF8
Post by Marco Schmidt
Post by Enrico Tröger
Post by Marco Schmidt
Post by Enrico Tröger
Post by Sascha Broich
Da sollte ja dein '\n' = 13 auftauchen.
tut es aber nicht. da steht keine 13 drin.
Es sollte auch 10 bzw. 0x0a sein.
yo, ich habe ganz am ende zwar ein 0x0a, aber da hilft mir nicht.
Was steht denn nun im String text eigentlich drin, bevor Du ihn in die
Datei schreibst? Hast Du den mal zeichenweise ausgeben lassen, wie
anderswo vorgeschlagen?
also ich hab das byte-array mir angeschaut. und da nix gefunden, also die
10, die da für \n hätte drin sein müssen.
Post by Marco Schmidt
Warum nimmst Du eigentlich nicht FileWriter? Das ist der normale Weg,
um mit Java Text in eine Datei zu schreiben.
hab ich ja auch schon probiert, weil hat ja oben auch schon mal jemand
vorgschlagen. aber damit hatte genauso wenig erfolg.

habe aber glaub ich den fehler gefunden:
ich schreibe einen string in die datei, dann wird sie geschlossen, später
wieder geöffnet, dann wieder reingeschrieben, und dann wieder geschlossen,
usw.

nachdem ersten speichern passen die umbrüche auch noch, aber beim einlesen
wirds dann nix mehr.
sorry, dass ich das erst jetzt schreibe, kam aber auch nich drauf.

und beim einlesen, habe ich es mir einfach gemacht
und habe die datei mittels RandomAccessFile und dann
der methode readline(); den inhalt gelesen.
und readline(); nimmt ja logischer die umbrüche als trennzeichen und daher
fehlen sie dann.

sorry für den unnötigen thread, und vielen dank trotzdem für eure hilfe.
*schäm*


Gruß
Enrico
Paul Schwann
2004-01-28 17:37:24 UTC
Permalink
Hi Enrico,

nach den ganzen Beiträgen hier habe ich den Eindruck, Du schaust Dir die
falsche Datei an. Bist Du sicher, daß Du die von Deinem Program
letzmalig erzeugt Datei anzeigen läßt (Datum!) oder das Du tatsächlich
den Code ausführst, den Eclipse Dir anzeigt?!

Hoffe ein paar Hinweise gegeben zu haben,
Paul
Boris Glawe
2004-01-28 13:43:53 UTC
Permalink
Habe das gleiche Problem mit Strings, die in einem Label angezeigt werden
sollen. Wenn die ein '\n' beinhalten, dann wird das '\n' einfach ignoriert, kein
Zeilenumbrucht, aber auch nicht als Text dargestellt. Gibt's da vielleicht
abhilfe ??
Daniel Bleisteiner
2004-01-28 13:54:47 UTC
Permalink
Post by Boris Glawe
Habe das gleiche Problem mit Strings, die in einem Label angezeigt
werden sollen. Wenn die ein '\n' beinhalten, dann wird das '\n' einfach
ignoriert, kein Zeilenumbrucht, aber auch nicht als Text dargestellt.
Gibt's da vielleicht abhilfe ??
Einfach 2 JLabel nehmen und diese untereinander anordnen. Oder eine eigene
Klasse JPanel erweitern lassen und dieses dann einbetten. Dann kannst Du
mit dem überschreiben von paintComponent() die Dartstellung komplett
selbst beeinflussen.
--
Daniel Bleisteiner
Sascha Broich
2004-01-28 14:16:36 UTC
Permalink
Post by Daniel Bleisteiner
Post by Boris Glawe
Habe das gleiche Problem mit Strings, die in einem Label angezeigt
werden sollen. Wenn die ein '\n' beinhalten, dann wird das '\n' einfach
ignoriert, kein Zeilenumbrucht, aber auch nicht als Text dargestellt.
Gibt's da vielleicht abhilfe ??
Einfach 2 JLabel nehmen und diese untereinander anordnen. Oder eine eigene
Klasse JPanel erweitern lassen und dieses dann einbetten. Dann kannst Du
mit dem überschreiben von paintComponent() die Dartstellung komplett
selbst beeinflussen.
Oder eine JTextArea nehmen.

Sascha Broich
--
Zynismus ist das Schwert,
Sarkasmus das Rapier und
Ironie das Florett
im Wortgefecht. (S. Word)
Boris Glawe
2004-01-31 12:09:47 UTC
Permalink
Post by Sascha Broich
Oder eine JTextArea nehmen.
Da wir alles in dem allseitsgeliebten Javagrau gehalten haben, macht sich die
JTextArea nicht so schön. Das liegt daran, dass die JTextArea weiß ist, auch
wenn man setEditable(false) setzt.
Ansonsten funktioniert das ja wunderbar mit area.setLineWrap(true) und
area.setWraptWordStyle(true).

Hast du da noch einen Tip, wie ich die JTextArea dazu bringen kann, sich genauso
unauffällig zu verhalten, wie ein JLabel??

Vielen Dank

Boris
Tobias Vogele
2004-01-28 14:34:10 UTC
Permalink
Hallo,
Post by Boris Glawe
Habe das gleiche Problem mit Strings, die in einem Label angezeigt werden
sollen. Wenn die ein '\n' beinhalten, dann wird das '\n' einfach ignoriert, kein
Zeilenumbrucht, aber auch nicht als Text dargestellt. Gibt's da vielleicht
abhilfe ??
Nimm <br> statt \n, ein JLabel kann auch HTML darstellen.

tobi
--
URL: http://www.wartmal.de Email: ***@wartmal.de
Daniel Bleisteiner
2004-01-28 22:14:18 UTC
Permalink
Post by Tobias Vogele
Nimm <br> statt \n, ein JLabel kann auch HTML darstellen.
Oh, man lernt nie aus... das ist mir direkt neu! Merk ich mir!
--
Daniel Bleisteiner
michael paap
2004-01-29 01:10:01 UTC
Permalink
Post by Daniel Bleisteiner
Post by Tobias Vogele
Nimm <br> statt \n, ein JLabel kann auch HTML darstellen.
Oh, man lernt nie aus... das ist mir direkt neu! Merk ich mir!
Probiere es lieber vorher mal aus. Mir ist das nämlich auch neu. So neu,
dass ich mir erlaube, es erst zu glauben, wenn jemand hier Code postet,
der mir das demonstriert.

Gruß,
Michael
--
Die Adresse im From existiert, wird aber nicht gelesen. Daher:
Sollte ausnahmsweise eine Mail-Antwort auf ein Posting vonnöten sein,
bitte folgende Adresse verwenden: newsreply@<Absender-Domain>.
Stefan Matthias Aust
2004-01-29 07:23:47 UTC
Permalink
Post by michael paap
Post by Daniel Bleisteiner
Post by Tobias Vogele
Nimm <br> statt \n, ein JLabel kann auch HTML darstellen.
Oh, man lernt nie aus... das ist mir direkt neu! Merk ich mir!
Probiere es lieber vorher mal aus. Mir ist das nämlich auch neu. So neu,
dass ich mir erlaube, es erst zu glauben, wenn jemand hier Code postet,
der mir das demonstriert.
Das darfst du ruhig glauben. Hier ist der Code:

new JLabel("<html>eins<br>zwei<br>drei");

Liest denn keiner irgendwelche Dokumentation? HTML-Strings (soweit
eingeschränkt wie Swing das eben kann) in Swing-Komponenten geht seit
Jahren. Der Nachteil ist nur, dass das in vielen LAFs zu sichtbar
anderer Schriftdarstellung führt (anderer Font und Größe).

Ich würde daher lieber eine eigene Labelartige-Komponente nutzen, wenn
man einfach nur beliebigen Text mehrzeilig darstellen will. Wenn das
Label den Text zudem selbstständig auf einer gegebenen Breite umbrechen
will, wirds schwerer, denn (im Gegensatz zu SWT) gibt es keinen
LayoutManager bei Swing, der zur preferredSize-Berechnung schon mal eine
Wunschbreite übergeben kann. Daher wünschen sich alle JLabels - auf mit
HTML - immer die einzeilige Darstellung von Absätzen, was natürlich
jedes Layout zerreist.


bye
--
Stefan Matthias Aust // "A new beginning always starts at the end" -WT
michael paap
2004-01-29 08:59:46 UTC
Permalink
Post by Stefan Matthias Aust
new JLabel("<html>eins<br>zwei<br>drei");
Tatsache. Ich muss zu meiner Schande gestehen, dass ich irgendwann mal
new JLabel("eins<br>zwei<br>drei")
ausprobiert habe und dann davon ausging, dass ein JLabel das halt nicht
kann.
Post by Stefan Matthias Aust
Liest denn keiner irgendwelche Dokumentation?
Doch, ich tue sowas... wie Du eigentlich weisst. Aber halt auch nicht
alles. Und das ganze GUI-Zeugs gehört nach wie vor nicht zu dem, was
mich primär interessiert.

Aber um Daniel Bleisteiner zu zitieren: "Man lernt nie aus."

Gruß,
Michael
--
Die Adresse im From existiert, wird aber nicht gelesen. Daher:
Sollte ausnahmsweise eine Mail-Antwort auf ein Posting vonnöten sein,
bitte folgende Adresse verwenden: newsreply@<Absender-Domain>.
michael paap
2004-01-29 09:02:53 UTC
Permalink
Post by Stefan Matthias Aust
new JLabel("<html>eins<br>zwei<br>drei");
Tatsache. Ich muss zu meiner Schande gestehen, dass ich irgendwann mal
new JLabel("eins<br>zwei<br>drei")
ausprobiert habe und dann - im Nachhinein betrachtet, idiotischerweise -
davon ausging, dass ein JLabel das halt nicht kann. Ich frage jetzt
auch nicht nach, wie ich denn den Text "<html>eins<br>zwei<br>drei" auf
ein Label bringen könnte. Steht aber sicher in der Doku. ;-)
Post by Stefan Matthias Aust
Liest denn keiner irgendwelche Dokumentation?
Doch, ich tue sowas... wie Du eigentlich weisst. Aber halt auch nicht
alles. Und das ganze GUI-Zeugs gehört nach wie vor nicht zu dem, was
mich primär interessiert.

Aber um Daniel Bleisteiner zu zitieren: "Man lernt nie aus."

Gruß,
Michael
--
Die Adresse im From existiert, wird aber nicht gelesen. Daher:
Sollte ausnahmsweise eine Mail-Antwort auf ein Posting vonnöten sein,
bitte folgende Adresse verwenden: newsreply@<Absender-Domain>.
Aljoscha Rittner
2004-02-01 11:19:12 UTC
Permalink
Post by Stefan Matthias Aust
Post by michael paap
Post by Daniel Bleisteiner
Post by Tobias Vogele
Nimm <br> statt \n, ein JLabel kann auch HTML darstellen.
Oh, man lernt nie aus... das ist mir direkt neu! Merk ich mir!
Probiere es lieber vorher mal aus. Mir ist das nämlich auch neu. So neu,
dass ich mir erlaube, es erst zu glauben, wenn jemand hier Code postet,
der mir das demonstriert.
new JLabel("<html>eins<br>zwei<br>drei");
Liest denn keiner irgendwelche Dokumentation? HTML-Strings (soweit
eingeschränkt wie Swing das eben kann) in Swing-Komponenten geht seit
Jahren. Der Nachteil ist nur, dass das in vielen LAFs zu sichtbar
anderer Schriftdarstellung führt (anderer Font und Größe).
Bis 1.3 war das nervig, aber seit 1.4 wird der Font von "Font.label"
(UIManager) genommen. Also IMHO das, was man erwarten würde.

Ein Nachteil von HTML-Label ist m.E. die Performance. Man sollte es
tunlichst vermeinden in Renderern HTML-Label zu verwenden.
Post by Stefan Matthias Aust
Ich würde daher lieber eine eigene Labelartige-Komponente nutzen, wenn
man einfach nur beliebigen Text mehrzeilig darstellen will. Wenn das
Label den Text zudem selbstständig auf einer gegebenen Breite umbrechen
will, wirds schwerer, denn (im Gegensatz zu SWT) gibt es keinen
LayoutManager bei Swing, der zur preferredSize-Berechnung schon mal eine
Wunschbreite übergeben kann. Daher wünschen sich alle JLabels - auf mit
HTML - immer die einzeilige Darstellung von Absätzen, was natürlich
jedes Layout zerreist.
Hm, so pauschal würde ich das nicht sagen. Ich hatte mit preferredSize
von HTML-Labeln nicht so das Problem. Irgendwo habe ich aber gelesen,
dass man Umbrüche besser mit <p> (übrigens ohne </p>) macht.
vielleicht funktioniert das besser.

Gruß,
Josch.
--
Post by Stefan Matthias Aust
Erst wenn die letzte Netiquette zertreten, der letzte Checkgroups
misachtet, die letzte Gruppe totverschoben und die letzte Hierarchie
gelöscht wurde, dann werdet ihr merken, dass HTML euch nicht antworten
kann. [Markus Mehring in dcpm]
Boris Glawe
2004-01-31 12:05:43 UTC
Permalink
Post by Tobias Vogele
Nimm <br> statt \n, ein JLabel kann auch HTML darstellen.
Das geht leider nur theoretisch, weil der Text, den ich darstellen möchte, sich
andauernd ändert (entweder durch Knopfdruck oder durch timeouts) und ich extra
einen Algorithmus schreiben müsste, der feststellt wo der zeilenumbruch
eingefügt werden soll. Solch ein Algorithmus muss zwangsläufig zu hässlichen
Layoutfehlern führen (wenn man das Fenster in der Größe ändert und andere probleme).

Ich habe den Vorschlag mit der JTextArea mal ausprobiert. Das funktioniert, mit
dem einzigen Manko, dass die TextArea weiß ist und sich das vom optischen nicht
sonderlich schön in unsere GUI einfügt. Gibt's da eine Möglichkeit, die
JTextArea genauso "unauffällig" aussehen zu lassen, wie ein JLabel ??

Viele Dank !

Sorry für die späte Resonanz auf eure Antworten, bin gerade in Klausuren...
Post by Tobias Vogele
tobi
Tobias Vogele
2004-01-31 12:53:21 UTC
Permalink
Hallo,
Post by Boris Glawe
Ich habe den Vorschlag mit der JTextArea mal ausprobiert. Das
funktioniert, mit dem einzigen Manko, dass die TextArea weiß ist und
sich das vom optischen nicht sonderlich schön in unsere GUI einfügt.
Gibt's da eine Möglichkeit, die JTextArea genauso "unauffällig"
aussehen zu lassen, wie ein JLabel ??
setOpaque(false), dann wird der Hintergrund nicht gezeichnet.

Grüße,

tobi
--
URL: http://www.wartmal.de Email: ***@wartmal.de
Andre Yang
2004-02-01 00:39:25 UTC
Permalink
http://examples.oreilly.com/jenut/MultiLineLabel.java
nicht zu danken
du kannst auch bei google multilinelabel suchen, da hast du nocht mehr

Andre Yang
dipl ing
Stefan Matthias Aust
2004-02-01 08:56:33 UTC
Permalink
Post by Andre Yang
http://examples.oreilly.com/jenut/MultiLineLabel.java
Das ist eine Lösung für AWT die man unter Swing nicht einsetzen sollte.


bye
--
Stefan Matthias Aust // Inter Deum Et Diabolum Semper Musica Est
Andre Yang
2004-02-03 10:39:25 UTC
Permalink
ich hatte, nicht ich habe.
ich hatte selber gesucht und ungefaehr 10 gefunden und gepostet, aber
bei manchen labels lauefst du gefahr, dass du irgendwelche und
gewollte imports machst, um diese imports zu vermeiden, ich weiss
nicht ob alle source code verfuegbar sind(selbst und hast du eventuell
copyright prob), habe ich bei dem heruf gehackt und eine einfache
freie von sun einfach copy und paste gemacht.
verstehen Sie?
Andre Yang
Dipl. Ing Technischer Informatiker

Martin Metz
2004-01-29 09:08:40 UTC
Permalink
Hallo Boris,
Post by Boris Glawe
Habe das gleiche Problem mit Strings, die in einem Label angezeigt
werden sollen. Wenn die ein '\n' beinhalten, dann wird das '\n' einfach
ignoriert, kein Zeilenumbrucht, aber auch nicht als Text dargestellt.
Gibt's da vielleicht abhilfe ??
Such mal in Google nach "Java MultiLineLabel" und such dir eine
Implementierung aus (wenn's überhaupt mehrere sind).
Das sollte besser funktionieren als der Hack mit HTML-Labels oder
Text-Areas.
--
Gruesse,

Martin Metz
Andre Yang
2004-02-03 10:30:55 UTC
Permalink
Post by Martin Metz
Hallo Boris,
....
Post by Martin Metz
Such mal in Google nach "Java MultiLineLabel" und such dir eine
Implementierung aus (wenn's überhaupt mehrere sind).
Das sollte besser funktionieren als der Hack mit HTML-Labels oder
Text-Areas.
ich wiederhole, such nicht java multilinelabels und such nach
multilinelabels, ich habe selber ungefaehr gefunden
Andre
ps. ich soll bisschen auf meine verstandlichkeit aufpassen
Stefan Ram
2004-01-28 16:35:45 UTC
Permalink
Post by Enrico Tröger
FileOutputStream out = new FileOutputStream(file);
aber der String text enthält auch \n für zeilenumbrüche. dummerweise
wird das aber nich in die datei geschrieben.
"\n" steht in Java nicht für einen Zeilenumbruch, sondern
für den Codepunkt 10 von Unicode.

Der Zeilentrenner Deines Systems ist
System.getProperty( "line.separator" )
.

Wenn Du "\n" hinausschreibst, sollte in der Datei auch
der Codepunkt 10 auftauchen. Wenn Deine Software das nicht
als Zeilenumbruch ansieht, dann ist es eben nicht das
richtige Zeichen für Deine Zwecke.
Enrico Tröger
2004-01-28 16:56:55 UTC
Permalink
Post by Stefan Ram
Post by Enrico Tröger
FileOutputStream out = new FileOutputStream(file);
aber der String text enthält auch \n für zeilenumbrüche. dummerweise
wird das aber nich in die datei geschrieben.
"\n" steht in Java nicht für einen Zeilenumbruch, sondern
für den Codepunkt 10 von Unicode.
Der Zeilentrenner Deines Systems ist
System.getProperty( "line.separator" )
danke, aber das hat mir leider auch nicht geholfen.

Gruß
Enrico
Lesen Sie weiter auf narkive:
Loading...