Swing JFC Java

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
public class JTextPaneDemo extends JFrame {
  static SimpleAttributeSet ITALIC_GRAY = new SimpleAttributeSet();
  static SimpleAttributeSet BOLD_BLACK = new SimpleAttributeSet();
  static SimpleAttributeSet BLACK = new SimpleAttributeSet();
  JTextPane textPane = new JTextPane();
  // Best to reuse attribute sets as much as possible.
  static {
    StyleConstants.setForeground(ITALIC_GRAY, Color.gray);
    StyleConstants.setItalic(ITALIC_GRAY, true);
    StyleConstants.setFontFamily(ITALIC_GRAY, "Helvetica");
    StyleConstants.setFontSize(ITALIC_GRAY, 14);
    StyleConstants.setForeground(BOLD_BLACK, Color.black);
    StyleConstants.setBold(BOLD_BLACK, true);
    StyleConstants.setFontFamily(BOLD_BLACK, "Helvetica");
    StyleConstants.setFontSize(BOLD_BLACK, 14);
    StyleConstants.setForeground(BLACK, Color.black);
    StyleConstants.setFontFamily(BLACK, "Helvetica");
    StyleConstants.setFontSize(BLACK, 14);
  }
  public JTextPaneDemo() {
    super("JTextPane Demo");
    JScrollPane scrollPane = new JScrollPane(textPane);
    getContentPane().add(scrollPane, BorderLayout.CENTER);
    setEndSelection();
    textPane.insertIcon(new ImageIcon("rntsoftLogo.GIF"));
    insertText("\nWebsite for: www.rntsoft.com \n\n", BOLD_BLACK);
    setEndSelection();
    insertText("                                    ", BLACK);
    setEndSelection();
    insertText("\n      Java            "
        + "                                    " + "Source\n\n",
        ITALIC_GRAY);
    insertText(" and Support. \n", BLACK);
    setEndSelection();
    JButton manningButton = new JButton("Load the web site for www.rntsoft.com");
    manningButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        textPane.setEditable(false);
        try {
          textPane.setPage("http://www.rntsoft.com");
        } catch (IOException ioe) {
          ioe.printStackTrace();
        }
      }
    });
    textPane.insertComponent(manningButton);
    setSize(500, 450);
    setVisible(true);
  }
  protected void insertText(String text, AttributeSet set) {
    try {
      textPane.getDocument().insertString(
          textPane.getDocument().getLength(), text, set);
    } catch (BadLocationException e) {
      e.printStackTrace();
    }
  }
  // Needed for inserting icons in the right places
  protected void setEndSelection() {
    textPane.setSelectionStart(textPane.getDocument().getLength());
    textPane.setSelectionEnd(textPane.getDocument().getLength());
  }
  public static void main(String argv[]) {
    new JTextPaneDemo();
  }
}