使用JavaSwing的滑动抽屉动画
我不熟悉swing并使用JavaSwing设计接口。我想要一个抽屉拉与滑动按钮点击动画。首先,是否可以这样做?如果可以,我该如何做。非常感谢。我希望您能给出一些具体的方法信息。首先,我认为您不应该使用使用JavaSwing的滑动抽屉动画,java,swing,animation,user-interface,Java,Swing,Animation,User Interface,我不熟悉swing并使用JavaSwing设计接口。我想要一个抽屉拉与滑动按钮点击动画。首先,是否可以这样做?如果可以,我该如何做。非常感谢。我希望您能给出一些具体的方法信息。首先,我认为您不应该使用Canvas,因为在我看来,如果没有必要的话,您不应该将Swing的组件与AWT混合使用(我指的是您在GUI中放置的实际组件-我知道Swing构建在AWT之上) 相反,您可能希望使用JPanel并使用其paintComponent方法执行自定义绘制。有很多关于这方面的教程(例如) 一旦你知道了如何在
Canvas
,因为在我看来,如果没有必要的话,您不应该将Swing的组件与AWT混合使用(我指的是您在GUI中放置的实际组件-我知道Swing构建在AWT之上)
相反,您可能希望使用JPanel
并使用其paintComponent
方法执行自定义绘制。有很多关于这方面的教程(例如)
一旦你知道了如何在JPanel
中绘制抽屉(只需使用Graphics2D
绘图),你就会想给它设置动画:基本上,你只需要更新它的一些属性,很可能是某个位置……如果你想有一些很好的放松效果,并且所有的东西都很容易处理和包装,我建议你去看看。我已经用过了,也可以帮你 将Universal Tween Engine库链接到项目后,只需使用以下调用:
Tween
.to(drawerProperties, Type.POSITION, 10.0f) // animate the POSITION property of your drawerProperties on 10.0 units of time
.target(100) // set the number of frames of that animation to
.ease(Quad.OUT) // set a nice quadratic effect on the animation
.start(tweenManager); // launch the animation
然后,在其他地方,您只需要运行一个线程
,使用TweenManager#update
不断更新您的TweenManager
同样,它看起来需要做很多工作,但实际上非常易于使用,Universal Tween Engine的入门部分非常好。此外,如果您真的想在项目中添加动画,这绝对是一个很好的工具:)
最后一点:您可能需要更新Swing的事件调度线程中的属性,具体取决于解决方案的实现方式。如果你对此不太了解,你可以阅读——或者只是搜索StackOverflow,如果你有具体的问题:)首先,我认为你不应该使用
Canvas
,因为在我看来,如果没有必要,你不应该将Swing的组件与AWT混合使用(我指的是您在GUI中放置的实际组件——我知道Swing构建在AWT之上)
相反,您可能希望使用JPanel
并使用其paintComponent
方法执行自定义绘制
一旦你知道了如何在JPanel
中绘制抽屉(只需使用Graphics2D
绘图),你就会想给它设置动画:基本上,你只需要更新它的一些属性,很可能是某个位置……如果你想有一些很好的放松效果,并且所有的东西都很容易处理和包装,我建议你看看。我已经用过了,也可以帮你 将Universal Tween Engine库链接到项目后,只需使用以下调用:
Tween
.to(drawerProperties, Type.POSITION, 10.0f) // animate the POSITION property of your drawerProperties on 10.0 units of time
.target(100) // set the number of frames of that animation to
.ease(Quad.OUT) // set a nice quadratic effect on the animation
.start(tweenManager); // launch the animation
然后,在其他地方,您只需要运行一个线程
,使用TweenManager#update
不断更新您的TweenManager
同样,它看起来工作量很大,但实际上非常易于使用,Universal Tween Engine的入门部分非常好。此外,如果您真的想在项目中添加动画,这肯定是一个非常好的工具:)
最后一点:您可能需要更新Swing的事件调度线程中的属性,具体取决于解决方案的实现方式。如果你对此不太了解,你可以阅读——或者只是搜索StackOverflow,如果你有具体的问题:)首先,我认为你不应该使用
Canvas
,因为在我看来,如果没有必要,你不应该将Swing的组件与AWT混合使用(我指的是您在GUI中放置的实际组件——我知道Swing构建在AWT之上)
相反,您可能希望使用JPanel
并使用其paintComponent
方法执行自定义绘制
一旦你知道了如何在JPanel
中绘制抽屉(只需使用Graphics2D
绘图),你就会想给它设置动画:基本上,你只需要更新它的一些属性,很可能是某个位置……如果你想有一些很好的放松效果,并且所有的东西都很容易处理和包装,我建议你看看。我已经用过了,也可以帮你 将Universal Tween Engine库链接到项目后,只需使用以下调用:
Tween
.to(drawerProperties, Type.POSITION, 10.0f) // animate the POSITION property of your drawerProperties on 10.0 units of time
.target(100) // set the number of frames of that animation to
.ease(Quad.OUT) // set a nice quadratic effect on the animation
.start(tweenManager); // launch the animation
然后,在其他地方,您只需要运行一个线程
,使用TweenManager#update
不断更新您的TweenManager
同样,它看起来工作量很大,但实际上非常易于使用,Universal Tween Engine的入门部分非常好。此外,如果您真的想在项目中添加动画,这肯定是一个非常好的工具:)
最后一点:您可能需要更新Swing的事件调度线程中的属性,具体取决于解决方案的实现方式。如果你对此不太了解,你可以阅读——或者只是搜索StackOverflow,如果你有具体的问题:)首先,我认为你不应该使用
Canvas
,因为在我看来,如果没有必要,你不应该将Swing的组件与AWT混合使用(我指的是您在GUI中放置的实际组件——我知道Swing构建在AWT之上)
Y