2

我正在使用 JTextPane 和 JButton

如果我单击按钮,我希望 JTextPane 中的每个字符下面都有一个点

例如

有没有办法做到这一点?

最大的问题是如何在每个字符下添加点:(

4

3 回答 3

1

http://java-sl.com/tip_colored_strikethrough.html你可以使用彩色删除线的例子。

您所需要的只是在字母下画线。只需设置Stroke为您的Graphics2D实例。(见BasicStroke和破折号模式)

于 2012-11-27T06:13:01.073 回答
1

您可以使用javax.swing.text.DefaultHighlighter, 它处理文本组件的字符间距,以便在该组件上进行背景绘制。

public class DotHighlighter extends DefaultHighlighter {
    // implementation
}

实现自定义荧光笔的工作量适中,但这里有一个很好的下划线荧光笔实现代码示例;你应该能够修改它来画点。

于 2012-11-27T05:30:16.537 回答
0

您使用的是等宽字体吗?如果是这样,则可以创建一个新标签并显示一个仅由句点组成的字符串(与原始标签中的字符串长度相同),并显示该标签比第一个标签低一点。

IE,如果你的标签上写着2446,那么你可以制作一个低 5 或 10 像素的第二个标签,上面写着....

同样,这仅适用于等宽字体 - 对于任何其他字体,它仍然是可能的,但它会涉及更复杂的解决方案(循环遍历每个字符,找到它的位置,然后设法在它下面显示一个点) , 我相信。

于 2012-11-27T05:21:28.020 回答