java刷新帧
时间: 2023-09-24 22:02:23 浏览: 81
在 Java 中,可以使用 `javax.swing.Timer` 类来实现帧刷新。下面是一个简单的例子:
``` java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class FrameRefresh extends JPanel implements ActionListener {
private int x, y;
private Timer timer;
public FrameRefresh() {
timer = new Timer(20, this); // 创建一个定时器,每 20 毫秒触发一次 actionPerformed 方法
timer.start(); // 启动定时器
x = 0;
y = 0;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(x, y, 50, 50); // 绘制一个红色的矩形
}
@Override
public void actionPerformed(ActionEvent e) {
x++; // 每次移动 x 坐标
if (x > getWidth()) { // 如果超出界限,重置为 0
x = 0;
}
repaint(); // 重新绘制组件
}
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Refresh Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.add(new FrameRefresh());
frame.setVisible(true);
}
}
```
这个例子创建了一个继承自 JPanel 的类 `FrameRefresh`,每 20 毫秒重新绘制一个红色的矩形,并且每次移动一定距离。`javax.swing.Timer` 类的 `start()` 方法启动定时器,`stop()` 方法停止定时器。在 `actionPerformed` 方法中实现每次移动和重绘操作。在 `main` 方法中创建一个 JFrame 并将 `FrameRefresh` 对象添加到其中。运行程序后,可以看到矩形在窗口中左右移动。
阅读全文