
效果图
参考代码
import java.awt.*import java.awt.event.*
import javax.swing.*
public class MoveTextFrame extends JFrame {
JLabel jl//文字标签
int speed=2//移动速度
public MoveTextFrame() {
jl = new JLabel("文字动画")
jl.setForeground(Color.RED)
add(jl)
setSize(380, 100)//窗口大小
setLocationRelativeTo(null)//窗口居中
setResizable(false)
setDefaultCloseOperation(EXIT_ON_CLOSE)
setVisible(true)
//设置定时器, 每隔25毫秒,改变一次文字标签的位置
Timer t = new Timer(25, new ActionListener() {
public void actionPerformed(ActionEvent e) {
int x = jl.getX()+speed//计算移动后的位置
if(x>=390){//如果超过就指定像素,就重新从左边开水移动
x=-30
}
jl.setLocation(x, jl.getY())//更新位置
//repaint()
}
})
t.start()
}
public static void main(String[] args) {
new MoveTextFrame()
}
}
一: 用多线程播放一组图片, 实现动画片的效果类似于逐帧动画,每个图片是动画的一帧
二: 在awt/swing界面里, 可以使用paint方法,去绘制图形,然后用swing提供的Timer或者多线程技术,去刷新绘制的图形
三:在JavaFX里, 本身就支持动画,并且封装了很多动画效果可以直接使用,比如逐帧动画.缩放动画,渐变动画,旋转动画,位置动画等.
强烈推荐使用javaFX来实现动画, 因为javaFX是现代化的图形界面工具,具有简单,强大,组件丰富,跨平台,支持Html5, 支持表格, 支持动画等多种优势
下面是一个javaFX绘制的动态表格
javaFX动态表格
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)