我想把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()
}
}