import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import javax.swing.UIManager;


public class JTextPaneDemo {
		
	static JFrame testFrame;
	static JPanel panel;
	private static void setUp() {
		testFrame = new JFrame();
		testFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		testFrame.getContentPane().setLayout(new BorderLayout());
        testFrame.setSize(640, 480);
        panel = new JPanel();
    	panel.setLayout(new BorderLayout());
    	JPanel infoPanel = new JPanel();
        infoPanel.setLayout(new GridLayout(0,1));
        infoPanel.setBackground (new Color(129, 171, 255));     // blue
        JLabel infoLabel = new JLabel("Test to verify behavior of JTextPane", SwingConstants.CENTER);
    	infoLabel.setFont(new Font("Dialog", Font.BOLD, 12));
    	infoLabel.setForeground(Color.black);
        infoPanel.add(infoLabel);                
        panel.add("North", infoPanel);
    	JScrollPane scrollPane = new JScrollPane();
    	scrollPane.setViewportView(panel);
    	testFrame.getContentPane().add("Center", scrollPane);
	}
	
	public static void main(String[] args) throws Exception{
		
		UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
		setUp();
	
		//JTextPane Logic
    	StyledDocument doc = (StyledDocument) new DefaultStyledDocument();
        SimpleAttributeSet att = new SimpleAttributeSet();
        StyleConstants.setUnderline(att, true);
        doc.setCharacterAttributes(0, 1, att, true);
        JTextPane textpane = new JTextPane(doc);
        textpane.setPreferredSize(new Dimension(200, 140));
        
        JPanel tptestPanel = new JPanel();
        tptestPanel.setLayout(new BorderLayout());
        JPanel textareaPanel = new JPanel();
        textareaPanel.setLayout(new FlowLayout());
        textareaPanel.add(textpane);
        tptestPanel.add(textareaPanel, BorderLayout.CENTER);
        panel.add("Center", tptestPanel);
        
        testFrame.setVisible(true);
        
    	
	}
}
