Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.Color;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Document;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;

public class Main extends JFrame {

    public static void main(String args[]) {
        new Main().setVisible(true);
    }

    Highlighter.HighlightPainter myHighLightPainter = new MyHighightPainter(Color.LIGHT_GRAY);

    private JScrollPane scrollPane;
    private JTextField searchText;
    private JTextPane textPane;
    private JButton search;

    public Main() {
        search = new javax.swing.JButton();
        searchText = new javax.swing.JTextField();
        scrollPane = new javax.swing.JScrollPane();
        textPane = new javax.swing.JTextPane();
        searchText.setText("test");
        textPane.setText("this is a testtest ");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        search.setText("Search");
        search.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                searchActionPerformed(evt);
            }
        });

        scrollPane.setViewportView(textPane);
        getContentPane().add(scrollPane, "Center");
        getContentPane().add(searchText, "North");
        getContentPane().add(search, "South");
        pack();
    }

    public void highLight(JTextComponent component, String patteren) {
        try {
            Document doc = component.getDocument();
            String text = component.getText(0, doc.getLength());
            int pos = component.getCaretPosition();
            if (pos == doc.getLength()) {
                pos = 0;
            }
            int index = text.toUpperCase().indexOf(patteren.toUpperCase(), pos);
            if (index >= 0) {
                component.setSelectionStart(index);
                component.setSelectionEnd(index + patteren.length());
                component.getCaret().setSelectionVisible(true);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void searchActionPerformed(java.awt.event.ActionEvent evt) {
        highLight(textPane, searchText.getText());
    }
}

class MyHighightPainter extends DefaultHighlighter.DefaultHighlightPainter {
    MyHighightPainter(Color color) {
        super(color);
    }
}