【发布时间】:2010-03-14 02:06:07
【问题描述】:
我正在更新 Java Swing 应用程序以支持用户将应用程序的字体从正常大小切换到更大的大小(这样用户可以在运行时在两种大小之间切换)。我遇到的一个问题是 JTree 使用 HTML 作为树节点来为某些节点中的文本添加下划线(HTML 只是嵌入在每个树节点的 JLabel 中)。关于节点的另一件事是,它们是一个自定义组件,在每个 JLabel 前面添加一个 JCheckBox。
问题在于,一旦 JTree 可见,增加字体大小会导致节点(包含下划线文本)无法调整大小。这些节点的 HTML 似乎会阻止节点变宽,因此当字体更改时,文本会被截断。
我认为我的选择是:1)使用另一种方法使文本加下划线,因为从 JLabel 中删除 HTML 会导致它在字体大小更改时正确调整大小,或者 2)保持 HTML 格式并以某种方式强制JTree/JLabels 在字体大小更新时调整大小(可能通过触发属性更改事件?)。
当字体大小更新时,代码已经在父 JFrame 上调用 SwingUtilities.updateComponentTreeUI()。
编辑:在应用程序中用于更改字体的方法是explained here。
任何帮助将不胜感激。提前致谢!
-迈克
【问题讨论】:
-
这里最大的问题是:如何更改应用程序中的字体大小?如果不回答这个问题,我们将无法提供任何帮助。
-
感谢您的评论。我已经编辑了这个问题,以包含一个指向以前的 SO 帖子的链接,该帖子解释了字体是如何更改的。