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

    Colore testo

    Devo fare un editor di testo e devo fare alcune parole in colori diversi: qualcuno saprebbe dirmi come si fa a cambiare il colore a ogni parola in un JTextPane?

  2. #2

  3. #3
    Grazie, ero di fretta e non mi ero neanche accorto

  4. #4
    Siccome dovrei formattare il testo riga per riga vorrei sapere se c'è un modo di leggere una sola riga alla volta di una JTextPane, o se esiste qualche metodo per farlo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    nel link che ti ho postato guarda tra i metodi. Ho trovato questi meotdi

    codice:
     String getSelectedText() 
              Returns the selected text contained in this TextComponent.

    codice:
    void setSelectedTextColor(Color c) 
              Sets the current color used to render the selected text. 
     void setSelectionColor(Color c) 
              Sets the current color used to render the selection

    credo che la selezione devi farla con il mouse e poi chiamare il metodo

  6. #6
    Ok, grazie.

    Proverò a vedere cosa riesco a fare con i metodi che mi hai indicato.

  7. #7
    Ciao io ho più o meno il tuo stesso problema, purtroppo i metodi: setSelectedTextColor(Color ) e setSelectionColor(Color c) , come ti sarai accorto servono solo per il colore della selezione.
    Per caso sei riuscito a risolvere?
    Io infatti dovrei prendere la parte selezionata, e cambiare il colore.

  8. #8
    Da giorni sto facendo ricerche su internet per colorare solo il testo selezionato, ho trovato suggerimenti di metodi che fanno tutt'altro e tutte le discussioni finivano senza una soluzione..
    Bene io ho trovato la soluzione grazie ad O'relly.
    Questo è il codice se a qualcuno interessa..
    codice:
     public void setSelectText(Color c){
    		
    		 SimpleAttributeSet aset = new SimpleAttributeSet();
    		  StyleConstants.setFontFamily(aset, resultName);
    		 StyleConstants.setFontSize(aset, resultSize);
    		 StyleConstants.setForeground(aset, c);
    		 
    		 if (style==Font.BOLD)
    			 StyleConstants.setBold(aset, true);
    		 if(style==Font.ITALIC)
    			 StyleConstants.setItalic(aset, true);
    		 
    		 co.setCharacterAttributes(aset, false);
    		 co.replaceSelection(co.getSelectedText());
    	 }
    Dove resultName, resultSize e style sono mie variabili globali, rispettivamente fontFamilyName, size e style.

  9. #9
    E quasi mi dimenticavo, se invece volete solo evidenziare invece si fa così......
    codice:
    Highlighter highlighter = console.getHighlighter();
    	    	  Color highlightColor = Color.yellow;
     try {	    		 
    	Object hi = highlighter.addHighlight(console.getSelectionStart(), console.getSelectionEnd(), new DefaultHighlighter.DefaultHighlightPainter(highlightColor));
    			} catch (BadLocationException e1) {e1.printStackTrace();}
    Anche se sono semi nuova in questo forum, mi permetto di invitarvi a mettere sempre la soluzione alle domande che ponete; quando si trova ovviamente..

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.