List of usage examples for javax.swing.text DefaultStyledDocument setCharacterAttributes
public void setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)
From source file:StylesExample2.java
public static void main(String[] args) { try {//from w w w . jav a 2 s . c o m UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception evt) { } JFrame f = new JFrame("Styles Example 2"); // Create the StyleContext, the document and the pane StyleContext sc = new StyleContext(); final DefaultStyledDocument doc = new DefaultStyledDocument(sc); JTextPane pane = new JTextPane(doc); // Create and add the main document style Style defaultStyle = sc.getStyle(StyleContext.DEFAULT_STYLE); final Style mainStyle = sc.addStyle("MainStyle", defaultStyle); StyleConstants.setLeftIndent(mainStyle, 16); StyleConstants.setRightIndent(mainStyle, 16); StyleConstants.setFirstLineIndent(mainStyle, 16); StyleConstants.setFontFamily(mainStyle, "serif"); StyleConstants.setFontSize(mainStyle, 12); // Create and add the constant width style final Style cwStyle = sc.addStyle("ConstantWidth", null); StyleConstants.setFontFamily(cwStyle, "monospaced"); StyleConstants.setForeground(cwStyle, Color.green); // Create and add the heading style final Style heading2Style = sc.addStyle("Heading2", null); StyleConstants.setForeground(heading2Style, Color.red); StyleConstants.setFontSize(heading2Style, 16); StyleConstants.setFontFamily(heading2Style, "serif"); StyleConstants.setBold(heading2Style, true); StyleConstants.setLeftIndent(heading2Style, 8); StyleConstants.setFirstLineIndent(heading2Style, 0); try { SwingUtilities.invokeAndWait(new Runnable() { public void run() { try { // Set the logical style doc.setLogicalStyle(0, mainStyle); // Add the text to the document doc.insertString(0, text, null); // Apply the character attributes doc.setCharacterAttributes(49, 13, cwStyle, false); doc.setCharacterAttributes(223, 14, cwStyle, false); doc.setCharacterAttributes(249, 14, cwStyle, false); doc.setCharacterAttributes(286, 8, cwStyle, false); doc.setCharacterAttributes(475, 14, cwStyle, false); doc.setCharacterAttributes(497, 21, cwStyle, false); doc.setCharacterAttributes(557, 9, cwStyle, false); doc.setCharacterAttributes(639, 12, cwStyle, false); doc.setCharacterAttributes(733, 21, cwStyle, false); doc.setCharacterAttributes(759, 9, cwStyle, false); // Finally, apply the style to the heading doc.setParagraphAttributes(0, 1, heading2Style, false); } catch (BadLocationException e) { } } }); } catch (Exception e) { System.out.println("Exception when constructing document: " + e); System.exit(1); } f.getContentPane().add(new JScrollPane(pane)); f.setSize(400, 300); f.setVisible(true); }
From source file:com.croer.javaorange.diviner.SimpleOrangeTextPane.java
protected void colorStyledDocument(final DefaultStyledDocument document) { EventQueue.invokeLater(new Runnable() { @Override//from www . j av a 2 s .com public void run() { String input = ""; try { input = document.getText(0, document.getLength()); } catch (BadLocationException ex) { Logger.getLogger(SimpleOrangeTextPane.class.getName()).log(Level.SEVERE, null, ex); } StringBuilder inputMut = new StringBuilder(input); String[] split = StringUtils.split(inputMut.toString()); int i = 0; for (String string : split) { int start = inputMut.indexOf(string); int end = start + string.length(); inputMut.replace(start, end, StringUtils.repeat(" ", string.length())); document.setCharacterAttributes(start, string.length(), styles[i++ % styles.length], true); } } }); }
From source file:simplealbum.mvc.autocomplete.JTextPaneX.java
protected void colorStyledDocument(final DefaultStyledDocument document) { EventQueue.invokeLater(new Runnable() { @Override//from w w w . j a va 2 s . c o m public void run() { String input = ""; try { input = document.getText(0, document.getLength()); } catch (BadLocationException ex) { Logger.getLogger(JTextPaneX.class.getName()).log(Level.SEVERE, null, ex); } StringBuilder inputMut = new StringBuilder(input); String[] split = StringUtils.split(inputMut.toString()); int i = 0; for (String string : split) { int start = inputMut.indexOf(string); int end = start + string.length(); inputMut.replace(start, end, StringUtils.repeat(" ", string.length())); document.setCharacterAttributes(start, string.length(), styles[i++ % styles.length], true); } } }); }