|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2006
Messaggi: 43
|
[Java] Allineamento testo in JTextPane....
Ho creato un JTextPane......ma ho un problema con l'allineamento del testo.....tutti gli altri attributi sono ben impostati (font,bold,fontsize,ecc...)
la riga[*] sembra che non la legge.... Codice:
JTextPane textComponent = new JTextPane();
SimpleAttributeSet charAttributes = new SimpleAttributeSet();
StyleConstants.setFontSize(charAttributes, size);
StyleConstants.setFontFamily(charAttributes, fontName);
if (isBold()) StyleConstants.setBold(charAttributes,true);
if (isItalic()) StyleConstants.setItalic(charAttributes,true);
if (isUnderlined()) StyleConstants.setUnderline(charAttributes,true);
StyleConstants.setAlignment(charAttributes,StyleConstants.ALIGN_LEFT);[*]
doc = textComponent.getStyledDocument();
int pos = doc.getEndPosition().getOffset();
try {doc.insertString(pos, testo, charAttributes);
} catch(BadLocationException ex) {throw new RuntimeException("This bad location ex shouldn't happen");}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Prova ad applicare lo stile al paragrafo, prima o dopo aver inserito il testo, usando setParagraphAttributes di StyledDocument.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Nov 2006
Messaggi: 43
|
.......
.....non riesco a impostare l'allineamento....il setParagraphAttributes va applicato al Document.....
e poi l'istruzione Codice:
StyleConstants.setAlignment(charAttributes,StyleConstants.ALIGN_LEFT); Ho inserito queste due istruzioni prima dell'inserimento del testo..... Codice:
textComponent.getStyledDocument().setParagraphAttributes(doc.getStartPosition().getOffset(), propr[i].getLength(), charAttributes, true); StyleConstants.setAlignment(charAttributes,StyleConstants.ALIGN_RIGHT); Ultima modifica di qwerty_giggi : 21-01-2007 alle 11:30. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
insertString applica gli attributi di stile all'elemento bersaglio dell'inserimento. Data la struttura di uno StyledDocument, l'elemento bersaglio è una foglia che considera solo la porzione relativa agli attributi di carattere. L'allineamento è un attributo di paragrafo dunque viene scartato.
Se vuoi applicare un allineamento devi farlo avendo come elemento bersaglio un paragrafo. insertString non considera l'allineamento setParagraphAttributes considera l'allineamento. I passaggi sono: Codice:
StyledDocument document = ...getStyledDocument();
int offset = document.getLength();
String text = ...testo da inserire;
SimpleAttributeSet attributes = new SimpleAttributeSet();
1. imposta gli attributi di carattere e paragrafo su attributes:
StyleConstants.set(attributes, ...);
StyleConstants.set(attributes, ...);
...eccetera
2. inserisci il testo applicando gli attributi di carattere:
document.insertString(offset, text, attributes);
3. applica gli attributi di paragrafo al paragrafo di inserimento:
Element paragraph = document.getParagraphElement(offset);
int start = paragraph.getStartOffset();
int length = paragraph.getEndOffset() - start;
document.setParagraphAttributes(start, length, attributes, false);
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Nov 2006
Messaggi: 43
|
ok....come al solito sei super esauriente....ciao ciao
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:09.


















