有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing Java JFrame渲染延迟

我正在尝试使用swing引擎用java制作一个简单的游戏。然而,目前我有滞后的问题。这个简单的代码绘制一个圆,并将其从帧的左上角移动到右下角,但它滞后了很多。虽然我的电脑有点旧,i3 4gb内存,但我认为它应该能够在没有延迟的情况下完成这项工作

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.Timer;

public class Game extends JPanel implements ActionListener {

  public Timer timer;
  int x = 0;
  int y = 0;

  public Game() {
    timer = new Timer(20, this);
    timer.start();
  }

  @Override
  public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.fillOval(x, y, 15, 15);
  }

  public void actionPerformed(ActionEvent e) {
    x++;
    y++;
    repaint();
  }

  public static void main(String[] args) throws InterruptedException {
    JFrame frame = new JFrame("test");
    Game game = new Game();
    frame.add(game);
    frame.setSize(600, 600);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

   }
}

共 (0) 个答案