JEditorPane stellt die Vordergrundfarbe für verschiedene Wörter ein

Ich arbeite derzeit an einem Texteditor und habe diesen Code, der den Hintergrund des spezifischen Wortes von den anderen unterscheidet, aber ich möchte, dass der Vordergrund die Farbe und nicht den Hintergrund bearbeitet.

Hier ist der Code, den ich habe:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.text.AbstractDocument;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Document;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
public class test {
     final static JEditorPane jep = new JEditorPane();
     static JButton button = new JButton("Refresh");
     static JTextPane jTextPane1 = new JTextPane();
     public static void main(String[] args) throws BadLocationException {
                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                jep.setText("Hello to the public place here are the public people");
                frame.add(jep);
                frame.pack();
                frame.setSize(500, 500);
                frame.add(button,BorderLayout.NORTH);
                frame.setVisible(true);
                button.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent arg0) {
                            try {
                                highlight(jep, "public");
                            } catch (BadLocationException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                    }
                });
                highlight(jep, "public");
    }
     public static void highlight(JTextComponent textComp, String pattern) throws BadLocationException {
        try {

             final MyHighlightPainter myHighlightPainter = new MyHighlightPainter(Color.red);
             Highlighter hilite = textComp.getHighlighter();
             MutableAttributeSet mas = (MutableAttributeSet)new SimpleAttributeSet ();
             StyleConstants.setForeground(mas, Color.red);

            Document doc = textComp.getDocument();
            String text = doc.getText(0, doc.getLength());
            int pos = 0;

            // Search for pattern
            while ((pos = text.indexOf(pattern, pos)) >= 0) {
                hilite.addHighlight(pos, pos + pattern.length(), myHighlightPainter);
                pos += pattern.length();

            }
        }finally{

        }
    }
}
class MyHighlightPainter extends DefaultHighlighter.DefaultHighlightPainter {
    public MyHighlightPainter(Obect object) {
        super((Color) object);

    }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage