使用动画插入JList

时间:2011-07-17 07:53:22

标签: java swing animation jlist

我想将JComponents插入JList的顶部。具体来说,我希望看起来项目被推下来。我想我有动画所需的逻辑,但我不知道如何让JList为它设置动画。

2 个答案:

答案 0 :(得分:2)

您需要先将组件渲染为BufferedImage,然后在GlassPane(实际组件上方)中渲染动画。

这看起来像是一篇相关文章:How to use glass pane for animation (SwingX and Timingframework)

答案 1 :(得分:0)

我最终做的是,ListCellRenderer使用哈希映射来跟踪每首歌曲的动画进度。动画基本上只是增加了ListCellRenderer从0返回到100的JComponent的高度,并且当插入一个新项时,Timer开始继续调用repaint方法直到动画完成。我从一开始就拥有这一切,但关键是动画似乎不起作用,除非我在每次迭代时用全新的ListCellRenderer替换它。

public void actionPerformed(ActionEvent event) {
    cards.setCellRenderer(new ItemRenderer(cardsPane));
    repaint();
    if(animation.done){
        timer.stop()
    }
}