Java by API/javax.swing.text/StyledDocument

Материал из Java эксперт
Перейти к: навигация, поиск

StyledDocument: addStyle(String nm, Style parent)

  

import java.awt.Color;
import javax.swing.JTextPane;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
public class Main {
  public static void main(String[] argv) throws Exception{
    JTextPane textPane = new JTextPane();
    StyledDocument doc = (StyledDocument) textPane.getDocument();
    // Create a style object and then set the style attributes
    Style style = doc.addStyle("StyleName", null);
    StyleConstants.setForeground(style, Color.white);
    // Append to document
    doc.insertString(doc.getLength(), "Some Text", style);
  }
}





StyledDocument: insertString(int offset, String str, AttributeSet a)

  

import java.awt.Color;
import javax.swing.JTextPane;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
public class Main {
  public static void main(String[] argv) throws Exception{
    JTextPane textPane = new JTextPane();
    StyledDocument doc = (StyledDocument) textPane.getDocument();
    // Create a style object and then set the style attributes
    Style style = doc.addStyle("StyleName", null);
    StyleConstants.setForeground(style, Color.white);
    // Append to document
    doc.insertString(doc.getLength(), "Some Text", style);
  }
}





StyledDocument: setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)

  
import javax.swing.JTextPane;
import javax.swing.text.StyledDocument;
public class Main {
  public static void main(String[] argv) throws Exception {
    JTextPane textPane = new JTextPane();
    StyledDocument doc = textPane.getStyledDocument();
    // Set text in the range [5, 7) red
    doc.setCharacterAttributes(5, 2, textPane.getStyle("Red"), true);
  }
}





StyledDocument: setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)

 
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import javax.swing.text.TabSet;
import javax.swing.text.TabStop;
public class MainClass {
  public static void main(final String args[]) {
    JFrame frame = new JFrame("Tab Attributes");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    StyledDocument document = new DefaultStyledDocument();
    int positions[] = { TabStop.ALIGN_BAR, TabStop.ALIGN_CENTER, TabStop.ALIGN_DECIMAL,
        TabStop.ALIGN_LEFT, TabStop.ALIGN_RIGHT };
    String strings[] = { "\tTabStop.ALIGN_BAR\n", "\tTabStop.ALIGN_CENTER\n",
        "\tTabStop.ALIGN_DECIMAL\n", "\tTabStop.ALIGN_LEFT\n", "\tTabStop.ALIGN_RIGHT\n" };
    SimpleAttributeSet attributes = new SimpleAttributeSet();
    for (int i = 0, n = positions.length; i < n; i++) {
      TabStop tabstop = new TabStop(150, positions[i], TabStop.LEAD_DOTS);
      try {
        int position = document.getLength();
        document.insertString(position, strings[i], null);
        TabSet tabset = new TabSet(new TabStop[] { tabstop });
        StyleConstants.setTabSet(attributes, tabset);
        document.setParagraphAttributes(position, 1, attributes, false);
      } catch (BadLocationException badLocationException) {
        System.err.println("Bad Location");
      }
    }
    JTextPane textPane = new JTextPane(document);
    textPane.setEditable(false);
    JScrollPane scrollPane = new JScrollPane(textPane);
    frame.add(scrollPane, BorderLayout.CENTER);
    frame.setSize(300, 150);
    frame.setVisible(true);
  }
}