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?
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?
pochi post sotto il tuo
http://forum.html.it/forum/showthrea...hreadid=992539
Grazie, ero di fretta e non mi ero neanche accorto
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.
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
Ok, grazie.
Proverò a vedere cosa riesco a fare con i metodi che mi hai indicato.
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.
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..
Dove resultName, resultSize e style sono mie variabili globali, rispettivamente fontFamilyName, size e style.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()); }
E quasi mi dimenticavo, se invece volete solo evidenziare invece si fa così......
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..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();}![]()