Nest Panel在框架中实现动画

时间:2011-04-16 20:17:55

标签: java swing

我正在尝试模拟一些简单的动画。基本上我想在一个框架上做一个填充的矩形移动。我认为我需要做的是以下几点。

继承JLabel并在其上绘制矩形。

将JLabel添加到JPanel,然后将此面板添加到框架中。

所以我的问题是,是否有可能为不可见的JPanel设置动画以产生移动矩形的错觉?

2 个答案:

答案 0 :(得分:3)

最好的办法是扩展JPanel并使用作为参数传入的Graphics对象绘制此类的paintComponent方法,如Swing图形教程所示。使用Graphics方法drawRect绘制矩形轮廓或fillRect以绘制实心矩形。您将需要使用Swing Timer来增加一些您将在上述方法中使用的int类字段,以告诉paintComponent在哪里绘制矩形。

答案 1 :(得分:1)

  

实际上我正在画一辆“汽车”,我把它简化为一个矩形。

  1. 创建代表汽车的图标
  2. 将图标添加到JLabel
  3. 将标签添加到面板
  4. 通过更改标签的位置来为汽车设置动画。
  5. 因此自定义绘画包含在Icon中。这样,当汽车从locationA移动到locationB时,只会重新绘制旧位置和新位置。

    如果您尝试在面板上进行绘图,您将结束:

    1. 重新绘制整个面板
    2. 添加自定义代码以确定要重绘的区域。