Ball反弹Java问题

时间:2016-02-24 14:35:19

标签: java

所以,我是一个完整的Java新手,我想制作一个动画节目,但我想以自己的方式去做,所以我理解它是如何工作的,我知道可能还有其他这样的问题,但我想知道答案使用我制作的代码,所以这里是我的代码,问题是当我运行这个盒子没有出现在窗口上并看着我的打印它就在我设置颜色之前就停止了。有人可以帮忙吗?

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;

import javax.swing.JFrame;
final public class main extends JFrame{
    private int x = 20;
    private int y = 20;

    private boolean right = true;
    private boolean left = false;
    private boolean down = true;
    private boolean up = false;

    public static void main(String[] args){
        JFrame JFrame = new JFrame("On My Own (kinda)");
        JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        JFrame.setVisible(true);
        JFrame.setLocation(375, 55);
        JFrame.setSize(300, 300);
        new main().Animate();
    }

    public void draw(){
        System.out.println("2");
        Graphics g = getGraphics();
        System.out.println("3");
        g.setColor(Color.BLACK);
        System.out.println("4");
        g.fillRect(x, y, 6, 6);
        System.out.println("5");
    }

    public void Animate(){
        System.out.println("1");
        while(true){
            //Game loop
            if(x >= 283){
                right = false;
                left = true;
            }
            if(x <= 7){
                right = true;
                left = false;
            }
            if(y >= 259){
                up = true;
                down = false;
            }
            if(y <= 7){
                up = false;
                down = true;
            }
            if(up){
                y--;
            }
            if(down){
                y++;
            }
            if(left){
                x--;
            }
            if(right){
                x++;
            }
            try{
                Thread.sleep(10);
            } catch (Exception exc){System.out.println("OOOPS");}
            draw();
        }
    }

}

这就是我得到的

1
Exception in thread "main" java.lang.NullPointerException
    at main.draw(main.java:30)
    at main.Animate(main.java:71)
    at main.main(main.java:23)
2
3

0 个答案:

没有答案