【发布时间】:2013-12-16 05:09:42
【问题描述】:
你们已经看过那些基于 Flash 的翻书了。我想在 Java 中创建相同的内容。我正在使用 JTextArea 作为书的叶子。我想知道的是如何实现翻页效果,通过覆盖componentPaint方法并结合Mouse/KeyListener?
【问题讨论】:
你们已经看过那些基于 Flash 的翻书了。我想在 Java 中创建相同的内容。我正在使用 JTextArea 作为书的叶子。我想知道的是如何实现翻页效果,通过覆盖componentPaint方法并结合Mouse/KeyListener?
【问题讨论】:
您需要将现有页面渲染到屏幕外缓冲区,然后转换缓冲区以渲染页面翻转。
所以,
您需要在一个线程中驱动它以在动画播放时重复调用重绘。所以设置一个'pageIsTurning'标志和'percentageTurned',它将向paint方法指示它需要进行特殊绘图以及它在动画中的位置。重复调用paint方法时更新percentageTurned标志,然后一旦完成,重置标志并允许componentPaint方法默认为super.componentPaint。
【讨论】:
与其重新发明轮子,不如为这个自定义 JComponent 尝试这个很棒的源代码,它完全符合您的要求:
http://lmireport.googlecode.com/svn/trunk/ireport/src/be/savat/components/JBookPanel.java
享受。 :)
【讨论】: