【发布时间】:2014-10-01 02:14:40
【问题描述】:
我正在开发一个带有许多文本字段和自定义 JComponents 的 Java 应用程序。到目前为止,我已将所有文本放入 JLabels 中,并使用 HTML 设置样式(使用<font> 或<style>)。这也可以很好地处理包装。
但是,我想使用我的自定义 JComponent 之一将文本放在自定义坐标处。当我这样做时(使用graphics.drawString(text,x,y)),HTML 代码似乎没有任何效果,所以我尝试使用g.setFont(new Font("Courier New", Font.PLAIN, 14)); g.setColor(new Color(0x999999)); 对其进行样式设置,这有效,但文本看起来明显不同,即使字体/颜色应该相同/风格。在我下面发布的图片中可能很难看到,但 HTML 样式的代码看起来更平滑且更厚一些(不,它不是粗体)。 (在本例中,swing 文本的大小实际上是 14 而不是 12,但无论哪种方式看起来都一样);
Swing 样式文本:
html 样式文本:
我的问题是,基本上,我应该怎么做?我可以通过我的项目并使用setFont() 重新设置所有 HTML 字符串的样式,但这听起来需要做很多工作,而且我实际上更喜欢 HTML 外观。有没有办法:
a) 样式文本,使其看起来像 HTML 文本,
b) 在自定义 JComponents 中解析/使用 HTML 样式,可能通过扩展 JLabel 并利用它使用的任何内部 API
c) 用我想要的文本绘制一个新的 JLabel 到一组指定的坐标(在 JPanel 内等)
d) 其他选项?
谷歌搜索没有发现任何有用的信息。请让我知道你在想什么。谢谢。
【问题讨论】: