非常多的標題。代碼應該繪製一個盒子,等待1秒鐘,然後在另一個位置繪製一個新盒子並重新繪製。相反,它會等待1秒鐘,然後繪製兩個盒子。感謝您的幫助和抱歉,如果我搞亂格式化。Thread.sleep()延遲整個程序,而不僅僅是它之後
import javax.swing.*;
import java.awt.*;
public class GameRunner extends JPanel{
@Override
public void paintComponent (Graphics g){
int x = 0;
boolean directionRight = true;
g.setColor(Color.blue);
g.fillRect(300,400,100,100);
repaint();
try{
Thread.sleep(1000);
}
catch (Exception ex){}
g.fillRect(600,400,100,100);
repaint();
}
public static void main (String[] args){
JFrame frame = new JFrame("Submarine");
GameRunner gameRunner = new GameRunner();
frame.add(gameRunner);
frame.setSize(1200,700);
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
你需要在你的'main'睡覺 - 調用方法兩次 –
歡迎來到「媽媽,我凍結事件調度線程」的美妙世界。先看看[AWT和Swing中的繪畫](http://www.oracle.com/technetwork/java/painting-140037.html)和[Swing中的併發](http://docs.oracle.com/javase/tutorial/uiswing/concurrency /)來了解Swing的繪畫過程如何工作。然後看看[如何使用Swing Timers](http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html)獲取可能的解決方案 – MadProgrammer
我在哪裏可以完全明瞭? –