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 java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

public class Main {
    public static void main(String[] args) {

        TextPaneAttributes frame = new TextPaneAttributes();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);

    }
}

class TextPaneAttributes extends JFrame {

    public TextPaneAttributes() {
        JTextPane textPane = new JTextPane();
        StyledDocument doc = textPane.getStyledDocument();
        MutableAttributeSet standard = new SimpleAttributeSet();

        StyleConstants.setAlignment(standard, StyleConstants.ALIGN_CENTER);
        doc.setParagraphAttributes(0, 0, standard, true);
        MutableAttributeSet keyWord = new SimpleAttributeSet();

        StyleConstants.setForeground(keyWord, Color.red);
        StyleConstants.setItalic(keyWord, true);

        textPane.setText("this is a test. \nthis is a four.");

        doc.setCharacterAttributes(0, 3, keyWord, false);
        doc.setCharacterAttributes(19, 4, keyWord, false);
        try {
            doc.insertString(0, "Start of text\n", null);
            doc.insertString(doc.getLength(), "End of text\n", keyWord);
        } catch (Exception e) {
        }
        MutableAttributeSet selWord = new SimpleAttributeSet();

        StyleConstants.setForeground(selWord, Color.RED);
        StyleConstants.setItalic(selWord, true);

        JScrollPane scrollPane = new JScrollPane(textPane);
        scrollPane.setPreferredSize(new Dimension(200, 200));
        add(scrollPane);

        JButton toggleButton = new JButton("Find 'four'");
        toggleButton.addActionListener(e -> {
            int index = textPane.getText().indexOf("four");
            StyledDocument doc1 = textPane.getStyledDocument();
            doc1.setCharacterAttributes(index, 4, selWord, false);
        });
        add(toggleButton, BorderLayout.SOUTH);
    }
}