PDA

View Full Version : [JAVA] Diversi font una stringa


JohnMarston
13-02-2016, 08:14
Questo metodo formatta l'ultimo elemento della stringa passata, con un font diverso. In pratica in output ottengo una roba del genere:
Ciao

private String formattaCampoTabella(String valore) {
String first = valore.substring(0, valore.length()-1);
String last = valore.substring( valore.length()-1 );
return "<html><span style=\"font-family: Tahoma; font-weight: normal; font-size: 11pt;\">"+first+"</span><span style=\"font-family: Tahoma; font-weight: normal; font-size: 9pt;\">"+last+"</span></html>";
}



Questo metodo lo passo prima di riempire i campi di una jTable.
In realtà fa il suo lavoro sporco, ma talvolta "svirgola" (passatemi il termine).
Se il valore della stringa passata continua a variare, si verifica che la formattazione non è stabile. Può verificarsi che all'interno della cella io non ottenga il risultato che ho postato in esempio.
Conoscete altri metodi per fare questo?

GianMi
15-02-2016, 08:46
Non hai scritto cosa succede quando la cella non viene formattata come ti aspetti. Comunque, mi vengono in mente un paio di cose: i componenti swing supportano un sottoinsieme limitato di html (3.2) e css e se usi un TableCellRenderer custom potrebbe dipendere da quello.

JohnMarston
16-02-2016, 05:54
quando la cella non viene formattata può capitare che si verifichi una formattaazione strana del tipo, come da esempio:
Ciao viene scritto Ciao

Oppure considerato che i campi sono allineati a destra vedo il contenuto della cella spostato a sinistra per poi tornare verso destra al successivo cambio di valore della stringa.
Non uso TableCellRender.

GianMi
16-02-2016, 08:17
Allora probabilmente dipende dai limiti di java con html. Ad esempio SPAN non è supportato. Puoi trovare maggiori dettagli qui (http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/package-summary.html) e qui (http://www.w3.org/TR/REC-html32.html)

JohnMarston
17-02-2016, 05:58
Avevo già visto, avevo anche tolto span e modificato il codice html riguardo allo style. Il problema non l'ho risolto, non è stabile. Non so perché, temo che dovrò rinunciare...

GianMi
17-02-2016, 07:34
In casi come questo forse la cosa migliore è creare un codice minimo compilabile che dimostri il problema e postarlo, magari si riesce a capire cosa c'è che non va.