我在一个非常大的 JavaEE 应用程序中有许多不同的组件。因此,调试很痛苦,遗憾的是我无法提供准确描述我遇到的问题的 SSCCE。
简而言之,不知何故,我的字体会自行改变,例如JLabels
和JTabbedPanes
. 无需触摸它们,它们就被重新粉刷为粗体、斜体、大小显着变化或它们的任何组合。
简单的问题:为什么?
如果我单步执行 Eclipse 调试器,则永远不会进行任何更改。所以时间在某种程度上是一个因素。
我仍然是一个 Java 蚱蜢(一个人工作),并且没有以 EDT 是神圣对象的方式构建这个程序。我担心因为我可能不会repaint()
在 EDT 上进行所有调用,所以 JTabbedPane、JLabel 和其他字体属性正在被重置和重新绘制。
编辑:
忘了说我受限于 Java 1.5。
我想我已经把它缩小到在 JLabels 和 JTabbedPane 选项卡标题中使用 HTML 的问题......但过去我不知道。关于 JTabbedPane,它使用正确的Font
/FontMetrics
对象进入绘图方法,但无论出于何种原因,它很少(有时更频繁;仍然没有弄清楚时间触发器)切换什么字体、样式,甚至它绘制文本的大小。