Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Java] Formattare testo

    Ho un oggetto jTextArea, non riesco a trovare il modo perché il cursore vada a capo in modo automatico mentre si scrive.

    Inoltre, dato un testo che devo visualizzare in un oggetto jTextArea devo trovare il modo per formattarlo prima di mandarlo a video.


    Aiutatemi! Denis.

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Per avere testo formattato devi usare un JTextPane, non una JTextArea.

  3. #3
    Ottimo!

    Altro problema, ho una stringa

    String a= "Ciccio"+ " "+ "Pasticcio."

    Poi passo la stringa 'a' all'oggetto jtextPane. Voglio però che la parola "Ciccio" appaia in grassetto. Come si fà?

    Grazie mille.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La cosa non è così semplice: innanzitutto ti consiglio di non concatenare la stringa. Mantieni separate le parole che vuoi visualizzare con stili differenti.

    Poi dai un'occhiata alla documentazione di JTextPane, dell'interfaccia Style e della creazione degli stili. Dai un'occhiata all'interfaccia Document.

    Questo, comunque, dovrebbe essere ciò che chiedi:
    codice:
    public void scriviTesto(JTextEditor destinazione) {
       StyledDocument doc = destinazione.getStyledDocument();
       creaStili( doc );
       doc.insertString(doc.getLength(), "Ciccio ", doc.getStyle("grassetto"));
       doc.insertString(doc.getLength(), "Pasticcio", doc.getStyle("normale"));
    }
    
    private void creaStili(StyledDocument doc) {
       Style deflt = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);
    
       // Stile normale
       Style normale = doc.addStyle("normale", deflt);
       StyleConstants.setFontFamily(deflt, "Arial");
       StyleConstants.setForeground(deflt, Color.black);
       StyleConstants.setFontSize(deflt, 12);
    
       // Stile grassetto
       Style s = doc.addStyle("grassetto", normale);
       StyleConstants.setBold(s, true);
       StyleConstants.setForeground(s, Color.blue);
       StyleConstants.setFontSize(s, 12);
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Un modo per applicare stili al testo è di aggiungere del testo nel JTextPane specificando un set di attributo che determinano lo stile; in particolare puoi usare un SimpleAttributeSet per definire un set di attributi; i SimpleAttributeSet si compongono l'uno sull'altro per creare stili sempre piu complessi. Se ad esempio hai un SimpleAttributeSet che definisce uno stile del testo con font courier di colore rosso, per avere uno stile courier rosso e grassetto basta creare un nuovo SimpleAttributeSet 'attaccato' al primo e aggiungere la proprietà del grassetto.

    Qui ti roporto un esempio in cui parto da uno stile normale che compongo via via con altri stili aggiungendo le proprietà di colore del testo, dimensione, font, grassetto e alla fine scrivo in un JTextPane. Dovrebbe funzionare anche se non l'ho provato:

    codice:
    //Creo un set di attributi
    SimpleAttributeSet normal = new SimpleAttributeSet();
    
    //Creo uno stile colored che eredita da normal
    //e ha in più il colore rosso
    SimpleAttributeSet colored = new SimpleAttributeSet(normal);
    //imposto il colore
    StyleConstants.setForeground(colored, Color.RED);
    
    
    //Creo uno stile courier che eredita da colored
    //e ha in più il font Courier
    SimpleAttributeSet courier = new SimpleAttributeSet(colored);
    //Imposto il font
    StyleConstants.setFontFamily(courier, "Courier");
    
    
    //Creo uno stile sized che eredita da courier 
    //e ha in più la dimensione impostata a 16
    SimpleAttributeSet sized = new SimpleAttributeSet(courier);
    //Imposto la dimensione
    StyleConstants.setFontSize(sized, 16);
    
    
    //Creo uno stile bold che eredita da sized 
    //e ha in più ha il grassetto
    SimpleAttributeSet bold = new SimpleAttributeSet(sized);
    //Imposto il grassetto
    StyleConstants.setBold(bold, true);
    
    
    //Scrivo il nome dello stile per ogni stile creato
    //pane è un JTextpane
    try{
            //Ricavo la posizione finale del testo in pane
    	int p = pane.getDocument().getEndPosition().getOffset() - 1;
    	pane.getDocument().insertString(p, "normal", normal);
            
            p = pane.getDocument().getEndPosition().getOffset() - 1;
    	pane.getDocument().insertString(p, "colored", colored);
    
            p = pane.getDocument().getEndPosition().getOffset() - 1;
    	pane.getDocument().insertString(p, "courier", courier);
    
            p = pane.getDocument().getEndPosition().getOffset() - 1;
    	pane.getDocument().insertString(p, "sized", sized);
    
            p = pane.getDocument().getEndPosition().getOffset() - 1;
    	pane.getDocument().insertString(p, "bold", bold);
    }
    catch(BadLocationException e){
            System.out.println(e);
    }

  6. #6
    Conoscete qualche sito nel quale trovare iconette gratuite? Mi servirebbero le solite, apri, chiudi, salva, ecc. Inoltre alcune per identificare tabelle, query, tabelle di sistema.
    Possibilmente di piccole dimensioni poiché le devo mettere in un oggetto jTree.

    Comunque grazie per l'aiuto, siete stati molto rapidi.



    Denis.


  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Qui:

    http://java.sun.com/developer/techDocs//hi/repository/

    trovi le icone proprie di java, non sono pero tantissime, trovi le principali, ma magari ti bastano,


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.