package com.zuidaima.awt;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*@author www.zuidaima.com/
**/
public class Game extends JPanel {
private int posx = 0;
private int posy = 0;
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.RED);
g2d.fillOval(posx, posy, 50, 50);
posx += 1;
posy += 1;
}
public static void main(String[] args) throws InterruptedException {
JFrame jframe = new JFrame();
jframe.setTitle("test");
Game game = new Game();
jframe.add(game);
jframe.setSize(300, 300);
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (true) {
game.repaint();
Thread.sleep(10);
}
}
}
然後設斷點,進行調試。
paint(Graphics g)是由AWT線程自動運行的。可以看到右邊有Thread[AWT-EventQueue-0]這個線程。
第一個斷點super.paint(g);用戶重新刷新graphics。
第二個斷點game.repaint()是用來告訴AWT線程再次執行paint();
官方验证:
很简单的java awt的实例,大可以放心下载
由最代码官方编辑于2014-7-30 22:19:05