我想将JComponents插入JList的顶部。具体来说,我希望看起来项目被推下来。我想我有动画所需的逻辑,但我不知道如何让JList为它设置动画。
答案 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()
}
}