Oppure

Loading
08/08/07 20:35
franz
ciao a tutti, sapete se esiste un package java per gestire il codice html? Qualche classe che permetta, partendo da una stringa html di visualizzare colore sfondo font, a seconda di quanto specificato dalal stringa. Avevo sentito di qualcosa di simile in Visual Basic..... Grazie in anticipo
aaa
09/08/07 10:38
netarrow
Devi usare il JTextPane:
java.sun.com/javase/6/docs/api/javax/swing/…

e fai qualcosa tipo questo:

...
JTextPane htmltext = new JTextPane();
htmltext.setContentType("text/html");
htmltext.setText("<h1>Test</h1>");
...
aaa
10/08/07 9:42
franz
Grazie funzia a meraviglia, però ancora un dubbio:
se nel codice html son presenti degli apici, che ne so ad es

htmltext.setText("<font color="red">Test</font>");


Il compilatore java li vede come indicazioni di fine stringa e considera la stringa in html come 2 stringhe separate da un fantomatico parametro red. Come faccio a inserire in una stringa degli apici che siano contemporanemante comprensibili anche al'html?
aaa
10/08/07 19:30
netarrow
devi usare i caratteri escape:

htmltext.setText("<font color=\"red\">Test</font>");


con quello slash rovesciato Java capirà che la " è da inserire nel testo e non da leggere come chiusura della stringa del sorgente.
aaa
10/08/07 19:32
java
per evitare che gli apici funzionino da fine stringa scrivi \"
aaa
11/08/07 19:33
franz
grazie ancora un ultima cosa :rotfl:: sapete dirmi qualcosa anche per gli script? Ho provato a inserire un Javascript nella luuuuuuuuuuunga stringa html ma non lo vede....
aaa
12/08/07 21:15
netarrow
java6 ha un package javax.script.*; che ti permette di richiamare un motore che fa da interprete a codice javaScript o altro, però non è integrato con il JTextPane, che io sappia il TextPane non supporta javascript.

Con Java 6 puoi fare qualcosa di simile:

import javax.script.*;
[...]
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
try {
 jsEngine.eval("print('Hello world')");
} catch (ScriptException ex) {
ex.printStackTrace();
}
[...]


forse puoi trovare un modo per fondere le due cose oppure provare a vedere che succede modificando il MIME del TextPane.
Ultima modifica effettuata da netarrow 12/08/07 21:16
aaa
13/08/07 19:23
franz
Grazie cercherò in internet su questo package. E, se non tazzo troppo l'anima, :D mi sono accorto che all'appello mancano ancora i CSS...... ho provato a emtterli nelal stringa html ma non vanno....
aaa