Java Netbeans突出显示Word中的文本

Java Netbeans突出显示Word中的文本,java,text,netbeans,highlight,Java,Text,Netbeans,Highlight,我想选择一个文本块,比如一个方法,或者一系列方法,并以特定的颜色突出显示背景,比如Microsoft Word。我如何在Netbeans中做到这一点?我需要为它安装插件吗? 谢谢您可以使用JTextPane为文本添加突出显示: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.text.*; public class TextPaneHighlighting extends

我想选择一个文本块,比如一个方法,或者一系列方法,并以特定的颜色突出显示背景,比如Microsoft Word。我如何在Netbeans中做到这一点?我需要为它安装插件吗?
谢谢

您可以使用
JTextPane
为文本添加突出显示:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;

public class TextPaneHighlighting extends JPanel
{
    private JTextPane textPane = new JTextPane();
    private DefaultHighlighter highlighter =  (DefaultHighlighter)textPane.getHighlighter();

    private Highlighter.HighlightPainter cyanPainter;
    private Highlighter.HighlightPainter yellowPainter;

    public TextPaneHighlighting()
    {
        setLayout( new BorderLayout() );

        textPane.setText( "one\ntwo\nthree\nfour\nfive\nsix\nseven\neight\nnine\nten" );
        add( new JScrollPane( textPane ) );

        //  Highlight some text

//      highlighter.setDrawsLayeredHighlights(false); // uncomment to highlight line to right edge

        cyanPainter = new DefaultHighlighter.DefaultHighlightPainter( Color.CYAN );
        yellowPainter = new DefaultHighlighter.DefaultHighlightPainter( Color.YELLOW );

        try
        {
            highlighter.addHighlight( 0, 3, cyanPainter );
        }
        catch(BadLocationException ble) {}

        JPanel buttons = new JPanel();
        add(buttons, BorderLayout.PAGE_END);

        JButton addHighlight = new JButton("Highlight Selected");
        buttons.add(addHighlight);
        addHighlight.addActionListener( new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    int start = textPane.getSelectionStart();
                    int end = textPane.getSelectionEnd();

                    highlighter.addHighlight( start, end, yellowPainter );
                }
                catch(BadLocationException ble) {}
            }
        });

        //  Add Remove Highlight button

        JButton removeHighlight = new JButton("Remove Selected Highlight");
        buttons.add( removeHighlight );
        removeHighlight.addActionListener( new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                int start = textPane.getSelectionStart();
                int end = textPane.getSelectionEnd();

                Highlighter.Highlight[] highlights = textPane.getHighlighter().getHighlights();

                for (int i = 0; i < highlights.length; i++)
                {
                    Highlighter.Highlight h = highlights[i];
                    DefaultHighlighter.DefaultHighlightPainter thePainter =
                        (DefaultHighlighter.DefaultHighlightPainter)h.getPainter();

                    if (h.getStartOffset() >= start
                    &&  h.getEndOffset() <= end)
                        highlighter.removeHighlight(h);
                }
            }
        });

    }

    private static void createAndShowGUI()
    {
        JFrame frame = new JFrame("Text Pane Highlighting");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new TextPaneHighlighting());
        frame.setSize(350, 300);
        frame.setLocationByPlatform( true );
        frame.setVisible( true );
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater( () -> createAndShowGUI() );
/*
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
            }
        });
*/
    }
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入javax.swing.text.*;
公共类TextPaneHighlighting扩展了JPanel
{
私有JTextPane textPane=新JTextPane();
私有DefaultHighlighter=(DefaultHighlighter)textPane.getHighlighter();
私人荧光笔。荧光笔画家;
私人荧光笔。荧光笔画家黄笔画家;
公共文本窗格高亮度()
{
setLayout(新的BorderLayout());
textPane.setText(“一个\n两个\n三个\n四个\n五个\n七个\n右\n右\n右\n右\n右]);
添加(新的JScrollPane(textPane));
//突出显示一些文本
//highlighter.setDrawsLayeredHighlights(false);//取消注释以高亮显示右边缘的线
cyanPainter=新的DefaultHighlighter.DefaultHighlightPainter(Color.CYAN);
yellowPainter=新的DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW);
尝试
{
高亮显示。添加高亮显示(0,3,5);
}
catch(BadLocationException-ble){}
JPanel按钮=新的JPanel();
添加(按钮、边框布局。页面_结尾);
JButton addHighlight=新JButton(“选中突出显示”);
按钮。添加(添加突出显示);
addHighlight.addActionListener(新的ActionListener()
{
已执行的公共无效操作(操作事件e)
{
尝试
{
int start=textPane.getSelectionStart();
int end=textPane.getSelectionEnd();
高亮显示。添加高亮显示(开始、结束、黄色油漆工);
}
catch(BadLocationException-ble){}
}
});
//添加删除突出显示按钮
JButton removeHighlight=新JButton(“删除所选突出显示”);
按钮。添加(删除突出显示);
removeHighlight.addActionListener(新ActionListener()
{
已执行的公共无效操作(操作事件e)
{
int start=textPane.getSelectionStart();
int end=textPane.getSelectionEnd();
Highlighter.Highlight[]highlights=textPane.getHighlighter().getHighlights();
对于(int i=0;i=开始
&&h.getEndOffset()createAndShowGUI());
/*
invokeLater(新的Runnable()
{
公开募捐
{
createAndShowGUI();
}
});
*/
}
}