Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.BorderLayout;
import java.awt.Color;

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.Document;
import javax.swing.text.Element;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import javax.swing.text.StyledEditorKit;

public class Main {
    static AttributeSet attribute;
    static Document doc1, doc2;

    private static void append1(String text) {
        try {
            doc1.insertString(doc1.getLength(), text, attribute);
        } catch (BadLocationException ex) {
            ex.printStackTrace();
        }
    }

    private static void append2(String text, AttributeSet attributeNew) {
        try {
            doc2.insertString(doc2.getLength(), text, attributeNew);
        } catch (BadLocationException ex) {
            ex.printStackTrace();
        }
    }

    public static void main(String args[]) throws BadLocationException {
        JTextPane textPane1 = new JTextPane();

        MutableAttributeSet black = new SimpleAttributeSet();
        MutableAttributeSet red = new SimpleAttributeSet();

        StyleConstants.setForeground(black, Color.black);
        StyleConstants.setForeground(red, Color.red);
        textPane1.setEditorKit(new StyledEditorKit());
        doc1 = textPane1.getDocument();

        append1("This is a Test!\n");

        attribute = red;
        append1("Hello world! Hello Stackoverflow\n");

        attribute = black;
        append1("the text is black again\n");

        StyledDocument styledDocument = textPane1.getStyledDocument();
        Element element;

        JTextPane textPane2 = new JTextPane();
        textPane2.setEditorKit(new StyledEditorKit());

        doc2 = textPane2.getDocument();
        for (int i = 0; i < styledDocument.getLength(); i++) {
            element = styledDocument.getCharacterElement(i);
            AttributeSet attributeNew = element.getAttributes();
            System.out.println(i);
            append2(styledDocument.getText(i, 1), attributeNew);
        }

        JFrame frame1 = new JFrame();
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame1.setSize(400, 300);
        frame1.getContentPane().add(new JScrollPane(textPane1), BorderLayout.CENTER);
        frame1.setVisible(true);

        JFrame frame2 = new JFrame();
        frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame2.setSize(400, 300);
        frame2.setLocation(300, 0);
        frame2.getContentPane().add(new JScrollPane(textPane2), BorderLayout.CENTER);
        frame2.setVisible(true);
    }
}