2011-04-11 57 views
2

我有一个Swing应用程序,其主面板分为3x2的图表网格,并且可以调整应用程序的大小,使用图表(JFreeChart)自动缩放。其中的一个面板我希望显示Apdex评级,这只是文本(例如'0.89 [0.5] *')。我们使用该应用程序在每个人都可见的监视器上显示,并缩放监视不同数据中心的应用程序的多个实例。缩放Apdex字体大小以适应可用的面板空间是我所追求的。自动缩放字体以适应面板

任何好主意?

+1

嗨。也许代码示例或图像显示问题在这里会有所帮助。对不起,如果没有它,我不会更有帮助。也尝试将问题重新标记为JFreeChart。 – Boro 2011-04-11 23:54:48

+0

另请参见[在约束/框内缩放文本尽可能大](http://stackoverflow.com/questions/2837410)。 – trashgod 2011-04-12 13:55:56

回答

2

在重新阅读并重新思考问题后,我建议您尝试使用FontMatrics的stringWidth字符串并迭代地增加字体大小,直到您可以自己计算它,例如,由您评估的大小与可用空间。

一个准备好的算法会很好,但我没有听说任何。

祝你好运,博罗。

+0

这就是我最初的方法,但我认为这必须在之前解决。 – tallpsmith 2011-04-12 00:43:12

+0

我预料会是这样。但我从来没有找到这种算法。请分享,如果你这样做。使用这种方法的库会很有用。 – Boro 2011-04-12 00:52:16

2

我会在一些适当的大点尺寸下将其渲染到屏幕外,如here所示,然后使用AffineTransformOp对其进行降采样,如here所示。

+0

+1好方法。 @trashgod我明白,而不是设置标签的文本,你会设置结果图像的图标?有谁知道这两种方法如何比较,处理时间明智吗?在@ trahsgod的方法中,您必须为每个调整大小创建一个图像,在另一种方法中,您可以迭代计算字体大小。 – Boro 2011-04-12 10:10:04

+0

@Boro:好问题。我记得以为'新的字体()'会很慢,但我[错](http://stackoverflow.com/questions/2837410)。两者都足够快,我从来没有配置过。一个'FontRenderContext'的可用性可能会有利于你的方法。 – trashgod 2011-04-12 13:54:37