如何使用Java Trident库为CardLayout中的面板设置动画?

时间:2012-04-26 14:50:41

标签: java swing animation

我想使用Java Trident库为屏幕转换设置动画。

我在CardLayout中安排了一系列面板。在一个面板上单击JButton时,将显示一个新面板。我想实现某种淡入式动画,而不是让它立刻出现。

我已经读过,只需将屏幕移出屏幕并在我想要转换时更改x坐标,就可以实现幻灯片动画。

我尝试过设置一些东西,但我知道我没有正确地做到这一点。我需要调用cl.show()来实际显示我想要的面板:

CardLayout cl = (CardLayout)(GameContainer.getLayout()); 
screenChangeTimeline = new Timeline(cl);
screenChangeTimeline.addPropertyToInterpolate("layout", "MainMenuPanel", "TwoPlayerPanel");
screenChangeTimeline.setDuration(1500);

GameContainer是具有CardLayout的面板,所有其他面板都位于其中。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

使用图像创建动画效果可能更容易,而不是实际的面板滑动。捕获您正在隐藏的面板的图像以及您要显示的面板。使用滑动效果为这些图像设置动画。完成动画后,交换实际面板。这是一个sample,它表现出类似的想法。它使用辅助卡滚动从两个面板组合的图像。

您可能对准备好的解决方案感兴趣 - Animatingcardlayout。它提供了CardLayout的扩展和一组各种动画。

另外,请查看Kirill Grouchnikov(三叉戟的创造者)的一系列文章 - Animating layouts