Draw2d:包含RectangleFigure有时会在缩放时切断文本。 (包括图片)

时间:2016-03-23 15:19:01

标签: word-wrap zooming draw2d

在我的程序中,我有一堆RectangleFigures,每个图形都包含文本。文本保存在TextFlow中,由FlowPage保存以允许自动换行。然后,RectangleFigure使用getPrefferedSize()使其自身足够大以容纳它的文本(使用固定宽度)。

这些RectangleFigures由ScalableLayeredPane持有。当我尝试通过调用setScale()进行缩放时,问题就出现了。大部分时间它工作正常,但偶尔文本的末尾将被切断。如果我再次缩放,图形将自行校正。我还应该说我已经使用Figure而不是RectangleFigure测试了我的程序,结果相同。

之前有没有人处理过这个错误,并且可以解释为什么会发生这种情况和/或知道任何变通办法?

我没有包含任何代码,因为这是一个相当大的程序,相关的代码块被分散开来。但是,如果您希望看到代码让我知道,我会尝试拼凑它。

enter image description here

1 个答案:

答案 0 :(得分:0)

我把文本放在一个图中,这就是我正在调用getPrefferedSize()的图。但是我把那个图(让我们称之为textFigure)放在第二个图(称为containerFigure)中。我基本上做的就是containerFigure.setSize(textFigure.getPrefferedSize())。

你可能想知道为什么我这样做。最初我计划让containerFigure保存多个东西,而不仅仅是textFigure。我最后编写了不同的编码,但忘记了不必要的额外层。

所以尽管containerFigure在技术上是规模所需要缩放导致的问题。但是,当我删除containerFigure并开始直接在屏幕上放置textFigure时,这个bug就被修复了。

这是我的一个相当具体的错误,所以我不知道这对别人有多大的帮助。如果你有某种尺寸问题,为了使其更广泛,只需检查一下如何设置父图形的大小。使用子图形中的尺寸可能不正确和/或导致问题。