需要有关在JTextPane上绘图的帮助

时间:2012-11-27 05:13:00

标签: java swing

我正在使用JTextPane和JButton

如果我单击Button,我希望JTextPane中的每个字符都有一个点

e.g

有没有办法做到这一点?

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

3 个答案:

答案 0 :(得分:1)

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

public class DotHighlighter extends DefaultHighlighter {
    // implementation
}

实施自定义荧光笔是一项适量的工作,但here's a nice code example强调了荧光笔的实施;你应该能够修改它以画点。

答案 1 :(得分:1)

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

您只需要在信件下画线。只需将Stroke设置为Graphics2D实例即可。 (参见BasicStroke和破折号模式)

答案 2 :(得分:0)

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

I.E。,如果您的标签显示为2446,那么您可以制作第二个标签,其标注低5或10个像素,即....

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