在我的程序中,我有一堆RectangleFigures,每个图形都包含文本。文本保存在TextFlow中,由FlowPage保存以允许自动换行。然后,RectangleFigure使用getPrefferedSize()使其自身足够大以容纳它的文本(使用固定宽度)。
这些RectangleFigures由ScalableLayeredPane持有。当我尝试通过调用setScale()进行缩放时,问题就出现了。大部分时间它工作正常,但偶尔文本的末尾将被切断。如果我再次缩放,图形将自行校正。我还应该说我已经使用Figure而不是RectangleFigure测试了我的程序,结果相同。
之前有没有人处理过这个错误,并且可以解释为什么会发生这种情况和/或知道任何变通办法?
我没有包含任何代码,因为这是一个相当大的程序,相关的代码块被分散开来。但是,如果您希望看到代码让我知道,我会尝试拼凑它。
答案 0 :(得分:0)
我把文本放在一个图中,这就是我正在调用getPrefferedSize()的图。但是我把那个图(让我们称之为textFigure)放在第二个图(称为containerFigure)中。我基本上做的就是containerFigure.setSize(textFigure.getPrefferedSize())。
你可能想知道为什么我这样做。最初我计划让containerFigure保存多个东西,而不仅仅是textFigure。我最后编写了不同的编码,但忘记了不必要的额外层。
所以尽管containerFigure在技术上是规模所需要缩放导致的问题。但是,当我删除containerFigure并开始直接在屏幕上放置textFigure时,这个bug就被修复了。
这是我的一个相当具体的错误,所以我不知道这对别人有多大的帮助。如果你有某种尺寸问题,为了使其更广泛,只需检查一下如何设置父图形的大小。使用子图形中的尺寸可能不正确和/或导致问题。