import java.awt.*;
import java.awt.event.*;public class TankClient extends Frame{ private static int GAME_WIDTH = 800;
private static int GAME_HEIGHT = 600;

public static void main(String[] args) {
new TankClient().launchFrame();
}
Tank myTank = new Tank(50,50);  


public void launchFrame(){
Frame f = new Frame();
                  f.setBounds(222, 120, GAME_WIDTH, GAME_HEIGHT);
f.setBackground(Color.GREEN);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
f.setResizable(false);
f.setVisible(true);
}

public void paint(Graphics g) {
g.setColor(Color.GREEN);
g.fillOval(30, 30, 50, 50);
}}

解决方案 »

  1.   

    在launchFrame方法里调用一下repain方法试试
      

  2.   

    因为你显示的frame和你画图的frame不是同一个frame
    你应该这样写import java.awt.*;
    import java.awt.event.*;public class TankClient extends Frame{    private static int GAME_WIDTH = 800;
        private static int GAME_HEIGHT = 600;
        
        public static void main(String[] args) {
            new TankClient();
        }
            //Tank myTank = new Tank(50,50);  
        
        
        public TankClient(){
            //Frame f = new Frame();
            setBounds(222, 120, GAME_WIDTH, GAME_HEIGHT);
            setBackground(Color.GREEN);
            addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }    
            });
            setResizable(false);
            setVisible(true);        
        }
        
        public void paint(Graphics g) {
            g.setColor(Color.RED);
            g.fillOval(30, 30, 50, 50);    
    }}