MultiHighlight.java Source code

Java tutorial

Introduction

Here is the source code for MultiHighlight.java

Source

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;

public class MultiHighlight implements ActionListener {

    private JTextComponent comp;

    private String charsToHighlight;

    public MultiHighlight(JTextComponent c, String chars) {
        comp = c;
        charsToHighlight = chars;
    }

    public void actionPerformed(ActionEvent e) {
        Highlighter h = comp.getHighlighter();
        h.removeAllHighlights();
        String text = comp.getText().toUpperCase();

        for (int j = 0; j < text.length(); j += 1) {
            char ch = text.charAt(j);
            if (charsToHighlight.indexOf(ch) >= 0)
                try {
                    h.addHighlight(j, j + 1, DefaultHighlighter.DefaultPainter);
                } catch (BadLocationException ble) {
                }
        }
    }

    public static void main(String args[]) {
        JFrame frame = new JFrame("MultiHighlight");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JTextArea area = new JTextArea(5, 20);
        area.setText("ww\nw.java2s.c\nom");
        frame.getContentPane().add(new JScrollPane(area), BorderLayout.CENTER);

        JButton b = new JButton("Highlight All Vowels");
        b.addActionListener(new MultiHighlight(area, "aeiouAEIOU"));
        frame.getContentPane().add(b, BorderLayout.SOUTH);
        frame.pack();
        frame.setVisible(true);
    }
}