Java Swing或AWT重绘频率

Java Swing或AWT重绘频率,java,Java,我试图用Java制作一个简单的游戏,最后得到了以下代码 @Override public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); ball.paint(g2

我试图用Java制作一个简单的游戏,最后得到了以下代码

@Override
public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
    ball.paint(g2d);
}

...

while (true) {
    repaint();
    Thread.sleep(10);
}
它没有足够频繁地重画。但如果我把鼠标移到窗口的顶部,它就开始更频繁地重新绘制。按下键盘上的按钮也会加快速度

我正在使用带有
i3wm
的Arch


不要相信互联网上的指南。有时候想想你自己

是导游弄错了。问题是算法是错误的。我们只需要更频繁地画画,而不是更新我们的世界

这是一个愚蠢的实现。就并发性而言,它应该是错误的

Timer timer1 = new Timer(1, new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        game.repaint();
    }
});
timer1.start();

Timer timer2 = new Timer(10, new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        game.move();
    }
});
timer2.start();

@peeskillet感谢
计时器
,但这没有帮助。还是一样的行为。@peeskillet抱歉。我问了一个愚蠢的问题。我现在就发布答案