| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  19-01-2007, 18:25 | #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");} | 
|   |   | 
|  19-01-2007, 19:49 | #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! | 
|   |   | 
|  21-01-2007, 11:22 | #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. | 
|   |   | 
|  21-01-2007, 15:43 | #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! | 
|   |   | 
|  22-01-2007, 18:26 | #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: 15:34.









 
		 
		 
		 
		






 
  
 



 
                        
                        










