gpt4 book ai didi

java - 绘图时如何防止屏幕闪烁?

转载 作者:行者123 更新时间:2023-11-30 05:55:16 25 4
gpt4 key购买 nike

这是我的代码:

public class Game extends JComponent implements Runnable {

World w = null;
Keyboard keyboard = null;

Thread game = null;

/** The constructor. I would like to initialize here */
public Game(){
// Create and set up the frame
JFrame frame = new JFrame("My Game");
frame.setSize(500, 700);
frame.setLocationRelativeTo(null);
frame.add(this);
frame.setVisible(true);
world = new World();
keyboard = new KeyBoard(this);
game = new Thread(this);
game.start();
}

/** The run() method. I'll be using it as a game loop */
@Override
public void run(){
while(true){
repaint();
try {
Thread.sleep(30);
} catch (InterruptedException ex) {
// I don't want to do anything
}
}
}

/** I was doing a test draw here, but getting an error */
@Override
public void paintComponent(Graphics gr){
Graphics2D g = (Graphics2D) gr;
g.setColor(Color.BLACK);
g.fillRect(200, 200, 200, 200);
}

}

屏幕经常闪烁。我尝试在运行方法中更改 sleep() 调用中的值,但它没有解决问题。

如何阻止屏幕闪烁?

最佳答案

The screen is flickering frequently.

在 EDT 上 sleep 等事情的经典标志。那不是做定制绘画的方法。使用 Swing Timer调用 repaint()

参见 How to Use Swing Timers还有Performing Custom Painting在教程中。

关于java - 绘图时如何防止屏幕闪烁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com