Source Code : JEditorPane Replace Reader

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

JEditorPane Replace Reader

JEditorPane Replace Reader
   
/*
Core SWING Advanced Programming 
By Kim Topley
ISBN: 0 13 083292 8       
Publisher: Prentice Hall  
*/



import java.io.FileReader;

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;

public class ReplaceReader {
  public static void main(String[] args) {
    try {
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    } catch (Exception evt) {}
  
    JFrame f = new JFrame("JEditorPane with Custom Reader");
    JEditorPane ep = new JEditorPane();
    f.getContentPane().add(new JScrollPane(ep));
    f.setSize(400, 300);
    f.setVisible(true);

    HTMLEditorKit kit = new HTMLEditorKit() {
      public Document createDefaultDocument() {
        HTMLDocument doc = new CustomHTMLDocument(getStyleSheet());
        doc.setAsynchronousLoadPriority(4);
        doc.setTokenThreshold(100);
        return doc;
      }
    };
    ep.setEditorKit(kit);
    
    try {
      Document doc = ep.getDocument();
      doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
      kit.read(new FileReader(args[0]), doc, 0);
    } catch (Exception e) {
      System.out.println("Exception while reading HTML " + e);
    }
  }
}

class CustomHTMLDocument extends HTMLDocument {
  CustomHTMLDocument(StyleSheet styles) {
    super(styles);
  }

  public HTMLEditorKit.ParserCallback getReader(int pos) {
    return new CustomReader(pos);
  }
          
  class CustomReader extends HTMLDocument.HTMLReader {
    public CustomReader(int pos) {
      super(pos);
    }

    public void flush() throws BadLocationException {
      System.out.println("flush called");
      super.flush();
    }

    public void handleText(char[] data, int pos) {
      indent();
      System.out.println("handleText <" + new String(data) + ">, pos " + pos);
      super.handleText(data, pos);
    }

    public void handleComment(char[] data, int pos) {
      indent();
      System.out.println("handleComment <" + new String(data) + ">, pos " + pos);
      super.handleComment(data, pos);
    }

    public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
      indent();
      System.out.println("handleStartTag <" + t + ">, pos " + pos);
      indent();
      System.out.println("Attributes: " + a);
      tagLevel++;
      super.handleStartTag(t, a, pos);
    }

    public void handleEndTag(HTML.Tag t, int pos) {
      tagLevel--;
      indent();
      System.out.println("handleEndTag <" + t + ">, pos " + pos);
      super.handleEndTag(t, pos);
    }

    public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos) {
      indent();
      System.out.println("handleSimpleTag <" + t + ">, pos " + pos);
      indent();
      System.out.println("Attributes: " + a);
      super.handleSimpleTag(t, a, pos);
    }

    public void handleError(String errorMsg, int pos){
      indent();
      System.out.println("handleError <" + errorMsg + ">, pos " + pos);
      super.handleError(errorMsg, pos);
    }

    protected void indent() {
      for (int i = 0; i < tagLevel; i++) {
        System.out.print(" ");
      }
    }

    int tagLevel;
  }
}

           
         
    
    
  

Thank with us