【问题标题】:Flip Book in Java/SwingJava/Swing 翻书
【发布时间】:2013-12-16 05:09:42
【问题描述】:

你们已经看过那些基于 Flash 的翻书了。我想在 Java 中创建相同的内容。我正在使用 JTextArea 作为书的叶子。我想知道的是如何实现翻页效果,通过覆盖componentPaint方法并结合Mouse/KeyListener?

【问题讨论】:

    标签: java swing


    【解决方案1】:

    您需要将现有页面渲染到屏幕外缓冲区,然后转换缓冲区以渲染页面翻转。

    所以,

    • 创建屏幕大小的屏幕外图像缓冲区。
    • 获取缓冲区的图形上下文并使用该上下文调用 super.componentPaint
    • 您现在已将页面“平坦”渲染到屏幕外缓冲区中
    • 使用屏幕上的上下文,
      • 清除该区域,
      • 复制缩放以显示翻转的屏幕外页面
      • 在顶部绘制 alpha 渐变以“遮蔽”页面,使其看起来像 3D

    您需要在一个线程中驱动它以在动画播放时重复调用重绘。所以设置一个'pageIsTurning'标志和'percentageTurned',它将向paint方法指示它需要进行特殊绘图以及它在动画中的位置。重复调用paint方法时更新percentageTurned标志,然后一旦完成,重置标志并允许componentPaint方法默认为super.componentPaint。

    【讨论】:

      【解决方案2】:

      与其重新发明轮子,不如为这个自定义 JComponent 尝试这个很棒的源代码,它完全符合您的要求:

      http://lmireport.googlecode.com/svn/trunk/ireport/src/be/savat/components/JBookPanel.java

      享受。 :)

      【讨论】:

        猜你喜欢
        • 2011-12-03
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 2017-09-25
        • 2013-04-13
        • 2013-03-28
        相关资源
        最近更新 更多