我正在尝试超过2天来实现文本编辑器窗口的特定要求...不幸的是到目前为止没有成功:(
目标是获得一个文本编辑器窗口,该窗口将突出显示当前行,就像其他文本编辑器一样.对于当前行,我指的是当前光标/插入符所在的行.
我已经找到了两种不同的方法,但不幸的是我无法采用它们,所以它们按预期工作.
第一种方法是覆盖DefaultHighlighter(http://snippets.dzone.com/posts/show/6688).在第二种方法中,HighlighterPainter将被覆盖(http://www.jroller.com/santhosh/date/20050622).
现在我正在尝试在我的项目中采用第一种方法,但正如我所说,它没有按预期工作.
在这篇文章的最后,我发布了一个小样本应用程序来演示这个问题.
我希望有人能告诉我这里我做错了什么......或者解释为什么根本无法解决这个问题.如何实现线条突出显示的任何替代解决方案也非常感谢!
非常感谢Cheers Preachie
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;
public class HighlightProblem extends JFrame {
private static final long serialVersionUID = 1L;
private final JTextPane textPane;
private final Highlighter.HighlightPainter cyanPainter;
public HighlightProblem() {
cyanPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.CYAN);
textPane = new JTextPane();
textPane.setPreferredSize(new …Run Code Online (Sandbox Code Playgroud)