# MessageFormat : multi line



## mathieu (7. Dez 2009)

Hi,

wie geht es ein multi line Message mit MessageFormat, weil \n funktionniert nicht !

vielen Dank

MfG aus Paris
Mathieu


----------



## fastjack (7. Dez 2009)

Geht doch :


```
System.out.println(MessageFormat.format("hallo{0}welt", "\na\nb\n"));
```

wird zu : 


```
hallo
a
b
welt
```


----------



## mathieu (7. Dez 2009)

Hi fastJack,

wenn ich so was schreibe :
MessageFormat header = new MessageFormat("hallo{0}welt", "\na\nb\n"); 

PrintUtilities.java:90: cannot find symbol
symbol  : constructor MessageFormat(java.lang.String,java.lang.String)
location: class java.text.MessageFormat
                                MessageFormat header = new MessageFormat("Fritz Stepper", "\na\nb\n");

Mit einem JTable versuche ich ein Multi Line Header zu ausdrucken. 

Vielen Dank.
MfG aus Paris
Mathieu


----------



## musiKk (7. Dez 2009)

Nicht [c]new MessageFormat(...[/c], sondern [c]MessageFormat.format(...[/c].


----------



## mathieu (7. Dez 2009)

Hi Muzikk,
das habe ich ebenfalls getestet. Ich become ein Fehler Meldung.


Also ich habe so was :
PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
attr.add(...);
attr.add(...);

MessageFormat header= new MessageFormat("myProjectname\n, myAdress\n, myEmail\n"); 
MessageFormat footer = new MessageFormat("Page {0,number,#.#}"); 

table.print(JTable.PrintMode.FIT_WIDTH, header, footer, true, attr, true);

(1)-->was ich oben geschrieben habe, funktioniert nicht mit einem Multi Line Versucht!
(2)--> wenn ich so was schreibe :
table.print(JTable.PrintMode.FIT_WIDTH, MessageFormat.format("hallo{0}welt", "\na\nb\n"), footer, true, attr, true);

PrintUtilities.java:92: cannot find symbol
symbol  : method print(javax.swing.JTable.PrintMode,java.lang.String,java.text.MessageFormat,boolean,javax.print.attribute.PrintRequestAttributeS
et,boolean)
location: class javax.swing.JTable
                                table.print(JTable.PrintMode.FIT_WIDTH, MessageFormat.format("hallo{0}welt", "\na\nb\n"), footer, true, attr, tru
e);

Mathieu


----------



## fastjack (7. Dez 2009)

Nimmst Du auch den java.text.MessageFormat ?


----------



## mathieu (7. Dez 2009)

Hi fastJack,

der print() funktion erkennt:
-->MessageFormat footer = new MessageFormat("Page {0,number,#.#}");  als java.text.MessageFormat

und der MessageFormat.format("hallo{0}welt", "\na\nb\n"); als java.lang.String

Der print() funktion will nur java.text.MessageFormat haben, aber MessageFormat.format ist ein java.lang.String !!!

in internet gibt es viele themen über diese Multiline Geschichte, leider habe ich noch kein richte Anworte gefunden! Ich versuche nur ein JTable mit einem Multiline Header zu ausdrucken. Der Tabelle kann ich locker uasdrucken- ein footer "page" geht auch. Ein header "one line" geht auch! Aber ein Header Multiline --> kein chance bis here.

MfG aus Paris
Mathieu


----------



## faetzminator (7. Dez 2009)

Die Fehlermeldung sagt doch aus, dass da ein MessageFormat und nicht ein String erwartet wird. In die API schauen hätte genügt  Du hast auch nirgens erwähnt, dass du eine Insstanz von MessageFormat benötigst.


----------



## mathieu (7. Dez 2009)

Hi faetzminator,

ich habe den Fehler Meldung schon verstanden 

Also noch einmal, ich habe ein funktion print() für JTable ::
myJTable.print(JTable.PrintMode.FIT_WIDTH, header, footer, true, attr, true);

ich möchte ein Multiline Header schreiben können! Welche Syntaxe ist die richtige?

MessageFormat header= ......


Thanks


----------



## fastjack (7. Dez 2009)

siehe : Java CodeGuru: (none)
und hier : MultiLine Header Example : Grid TableSwing ComponentsJava


----------



## mathieu (7. Dez 2009)

ich habe diese Beispiel auch schon durchgeguckt.... 
Ooh Mann warum ist es so schwer zu erklären ;(

Ok, es ist wie beim Office Word, KopfZeile, FussZeile :bahnhof:
in Kopfzeile möchte ich ein paar Infos schreiben: Projetname, datum, adress, email... auf 3 Line. Dann kommt es den myJTable und zum schluss in den Fusszeile "Page 1,2,3..").


----------

