用动画插入JList



我想把JComponents插入到JList的顶部。具体来说,我想让它看起来像是被向下推的。我想我有动画所需的逻辑,但我不知道如何使JList动画

你需要首先将你的组件渲染到一个BufferedImage,然后在GlassPane中渲染动画(在实际组件之上)。

这看起来像一个相关的文章:如何使用玻璃窗格动画(SwingX和Timingframework)

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

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

最新更新