Szukałem tego przez jakiś czas i do tej pory wszystko udało mi się wymyślić sposób, aby utworzyć styl i zastosować go do charakteru tak:Jak ustawić każdy znak na inny kolor/kolor tła w JTextPane?
StyledDocument doc = (StyledDocument) new DefaultStyledDocument();
JTextPane textpane = new JTextPane(doc);
textpane.setText("Test");
javax.swing.text.Style style = textpane.addStyle("Red", null);
StyleConstants.setForeground(style, Color.RED);
doc.setCharacterAttributes(0, 1, textpane.getStyle("Red"), true);
Jest to użyteczne jeśli masz tylko kilka stylów w swoim dokumencie i chcesz przechowywać je po nazwie, aby móc je później łatwo zastosować. W mojej aplikacji chcę móc ustawić kolor pierwszego planu (jedną z niewielu wartości) i kolor tła (skala szarości, wiele różnych wartości) niezależnie dla każdego znaku w tekście. Wygląda na to, że ogromne marnotrawstwo tworzy potencjalnie setki/tysiące różnych stylów. Czy istnieje sposób ustawiania tych atrybutów bez konieczności tworzenia nowego stylu za każdym razem? Byłoby o wiele łatwiej, gdybym tylko musiał renderować tekst, ale muszę go również edytować. Czy jest jakiś sposób, aby to zrobić z JTextPane
, czy istnieje inna klasa swing, która oferuje tę funkcjonalność?
ewentualne naruszenie praw autorskich do tekstu? Chciałbym go użyć w testach SwingX :-) – kleopatra
@kleopatra AFAIK "Lorem ipsum" jest w domenie publicznej, ponieważ istnieje ponad 500 lat. –
@kleopatra nie Wziąłem go od [tutaj] (http://www.lipsum.com/) –