我正在使用 JTextPane 和 JButton
如果我单击按钮,我希望 JTextPane 中的每个字符下面都有一个点
有没有办法做到这一点?
最大的问题是如何在每个字符下添加点:(
http://java-sl.com/tip_colored_strikethrough.html你可以使用彩色删除线的例子。
您所需要的只是在字母下画线。只需设置Stroke
为您的Graphics2D
实例。(见BasicStroke
和破折号模式)
您可以使用javax.swing.text.DefaultHighlighter
, 它处理文本组件的字符间距,以便在该组件上进行背景绘制。
public class DotHighlighter extends DefaultHighlighter {
// implementation
}
实现自定义荧光笔的工作量适中,但这里有一个很好的下划线荧光笔实现代码示例;你应该能够修改它来画点。
您使用的是等宽字体吗?如果是这样,则可以创建一个新标签并显示一个仅由句点组成的字符串(与原始标签中的字符串长度相同),并显示该标签比第一个标签低一点。
IE,如果你的标签上写着2446
,那么你可以制作一个低 5 或 10 像素的第二个标签,上面写着....
。
同样,这仅适用于等宽字体 - 对于任何其他字体,它仍然是可能的,但它会涉及更复杂的解决方案(循环遍历每个字符,找到它的位置,然后设法在它下面显示一个点) , 我相信。