【问题标题】:How can I use the Java Trident library to animate panels in CardLayout?如何使用 Java Trident 库为 CardLayout 中的面板设置动画?
【发布时间】:2012-04-27 03:04:38
【问题描述】:

我想使用 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 的面板,所有其他面板都位于其中。

【问题讨论】:

    标签: java swing animation


    【解决方案1】:

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

    您可能对现成的解决方案感兴趣 - Animatingcardlayout。它提供了 CardLayout 的扩展和一组不同的动画。

    此外,请查看 Kirill Grouchnikov(Trident 的创建者)的一系列文章 - Animating layouts

    【讨论】:

    • 谢谢你。我选择了 AnimatingCardLayout,它非常适合我的需要。
    【解决方案2】:

    【讨论】:

    • 恭喜这个徽章应该默认自动分配给你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    相关资源
    最近更新 更多