【发布时间】:2012-08-11 15:54:13
【问题描述】:
我需要在 JPanel 中显示一个图像(它本身被放置在几层 JPanel 中)并且我想调整图像的大小以适应 JPanel 的宽度。现在,当我将图像添加到 JPanel 时,JPanel 的 getWidth() 等于屏幕宽度,因此图像被调整为屏幕宽度。但是在将 Jpanel 添加到其父 JPanel 之后,宽度发生了变化,因此图像对于 JPanel 的宽度来说太大了。
我想在 JPanel 布局后才调整大小并添加图像,所以我得到了适当的面板宽度并可以相应地调整图像大小。
我怎样才能做到这一点?有没有类似afterLayout()的事件?
【问题讨论】:
-
“添加图片”是什么意思?核心 JPanel 没有 api 来做这样的事情......在 SwingX 的 JXPanel 中,您将设置一个 ImagePainter(作为面板的 backgroundPainter),其拉伸属性设置为 true:它会自动缩放自身以始终适合面板大小
-
我倾向于计算
paintComponent(Graphics)上的尺寸。