我正在尝试通过反复更改JLabel
上的图标来创建动画(旋转文本)。问题是图像的大小不同,当它们大于第一张图像的大小时,它们会被剪裁。
解决这个问题的另一种方法是为JLabel
设置setPreferredSize,以便所有图片都适合 - 但我想必须有一种方法可以动态地调整包含JPanel
的{{1}}的大小?
在下面的代码中,我也尝试删除所有JLabel
,创建一个新的,然后添加新的,但效果相同。
JLabel
整个面板将用于小程序。
这是截图:http://screencast.com/t/UmqQFZHJVy
应该是帧的图像应该位于/ images /子目录中,如果用户输入 n 表示帧数,F表示图像 前缀,然后文件是F1,F2等,到Fn(GIF)。声音文件应位于/ audio /子目录中,整个文件名由用户提供。
答案 0 :(得分:3)
您可以尝试为每张图片创建JLabels
列表,将其添加到CardLayout
的面板并交换卡片。
答案 1 :(得分:3)
好的JLabel
应自动调整其给定内容的大小,因此要解决JPanel问题,只需覆盖getPreferredSize()
JPanel
并JLabel
并Dimension
根据{{1}}大小。
JLabel
也不要忘记在public class MyPanel extends JPanel {
JLabel label=...;
@Override
public Dimension getPreferredSize() {
return new Dimension(label.getWidth(),label.getHeight());
}
}
实例上更改JLabel
来电revalidate()
和repaint()
的图标,以便重新选择尺寸更改。