Results 1 to 7 of 7
Like Tree1Likes
  • 1 Post By Fubarable

Thread: Exception in thread "main" java.lang.NullPointerException

  1. #1
    palie is offline Member
    Join Date
    Jan 2012
    Posts
    6
    Rep Power
    0

    Default Exception in thread "main" java.lang.NullPointerException

    i just found this coding and try to run.
    theres no error on that but when i run this is what appears

    Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
    at Board.<init>(Board.java:59)
    at Snake.<init>(Snake.java:20)
    at Snake.main(Snake.java:32)

    here's the code

    1. class Snake

    import javax.swing.JFrame;

    public class Snake extends JFrame {

    public Snake() {

    add(new Board());

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(320, 340);
    setLocationRelativeTo(null);
    setTitle("Snake");

    setResizable(false);
    setVisible(true);
    }

    public static void main(String[] args) {
    new Snake();
    }
    }


    2. class Board

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.FontMetrics;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;

    import javax.swing.ImageIcon;
    import javax.swing.JPanel;
    import javax.swing.Timer;


    public class Board extends JPanel implements ActionListener {

    private final int WIDTH = 300;
    private final int HEIGHT = 300;
    private final int DOT_SIZE = 10;
    private final int ALL_DOTS = 900;
    private final int RAND_POS = 29;
    private final int DELAY = 140;

    private int x[] = new int[ALL_DOTS];
    private int y[] = new int[ALL_DOTS];

    private int dots;
    private int apple_x;
    private int apple_y;

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

    private Timer timer;
    private Image ball;
    private Image apple;
    private Image head;


    public Board() {
    addKeyListener(new TAdapter());

    setBackground(Color.black);

    ImageIcon iid = new ImageIcon(this.getClass().getResource("dot.png"));
    ball = iid.getImage();

    ImageIcon iia = new ImageIcon(this.getClass().getResource("apple.png") );
    apple = iia.getImage();

    ImageIcon iih = new ImageIcon(this.getClass().getResource("head.png")) ;
    head = iih.getImage();

    setFocusable(true);
    initGame();
    }


    public void initGame() {

    dots = 3;

    for (int z = 0; z < dots; z++) {
    x[z] = 50 - z*10;
    y[z] = 50;
    }

    locateApple();

    timer = new Timer(DELAY, this);
    timer.start();
    }


    public void paint(Graphics g) {
    super.paint(g);

    if (inGame) {

    g.drawImage(apple, apple_x, apple_y, this);

    for (int z = 0; z < dots; z++) {
    if (z == 0)
    g.drawImage(head, x[z], y[z], this);
    else g.drawImage(ball, x[z], y[z], this);
    }

    Toolkit.getDefaultToolkit().sync();
    g.dispose();

    } else {
    gameOver(g);
    }
    }


    public void gameOver(Graphics g) {
    String msg = "Game Over";
    Font small = new Font("Helvetica", Font.BOLD, 14);
    FontMetrics metr = this.getFontMetrics(small);

    g.setColor(Color.white);
    g.setFont(small);
    g.drawString(msg, (WIDTH - metr.stringWidth(msg)) / 2,
    HEIGHT / 2);
    }

    public void checkApple() {

    if ((x[0] == apple_x) && (y[0] == apple_y)) {
    dots++;
    locateApple();
    }
    }


    public void move() {

    for (int z = dots; z > 0; z--) {
    x[z] = x[(z - 1)];
    y[z] = y[(z - 1)];
    }

    if (left) {
    x[0] -= DOT_SIZE;
    }

    if (right) {
    x[0] += DOT_SIZE;
    }

    if (up) {
    y[0] -= DOT_SIZE;
    }

    if (down) {
    y[0] += DOT_SIZE;
    }
    }


    public void checkCollision() {

    for (int z = dots; z > 0; z--) {

    if ((z > 4) && (x[0] == x[z]) && (y[0] == y[z])) {
    inGame = false;
    }
    }

    if (y[0] > HEIGHT) {
    inGame = false;
    }

    if (y[0] < 0) {
    inGame = false;
    }

    if (x[0] > WIDTH) {
    inGame = false;
    }

    if (x[0] < 0) {
    inGame = false;
    }
    }

    public void locateApple() {
    int r = (int) (Math.random() * RAND_POS);
    apple_x = ((r * DOT_SIZE));
    r = (int) (Math.random() * RAND_POS);
    apple_y = ((r * DOT_SIZE));
    }

    public void actionPerformed(ActionEvent e) {

    if (inGame) {
    checkApple();
    checkCollision();
    move();
    }

    repaint();
    }


    private class TAdapter extends KeyAdapter {

    public void keyPressed(KeyEvent e) {

    int key = e.getKeyCode();

    if ((key == KeyEvent.VK_LEFT) && (!right)) {
    left = true;
    up = false;
    down = false;
    }

    if ((key == KeyEvent.VK_RIGHT) && (!left)) {
    right = true;
    up = false;
    down = false;
    }

    if ((key == KeyEvent.VK_UP) && (!down)) {
    up = true;
    right = false;
    left = false;
    }

    if ((key == KeyEvent.VK_DOWN) && (!up)) {
    down = true;
    right = false;
    left = false;
    }
    }
    }
    }




    Or you can check on this..i just copy from there..

    genaral snake game in java

    how to fix it

  2. #2
    eRaaaa is offline Senior Member
    Join Date
    Oct 2010
    Location
    Germany
    Posts
    787
    Rep Power
    5

    Default Re: Exception in thread "main" java.lang.NullPointerException

    Quote Originally Posted by palie View Post
    how to fix it
    you have to put three images into the same package as where the board class is
    ---
    ImageIcon iid = new ImageIcon(this.getClass().getResource("dot.png"));
    ImageIcon iia = new ImageIcon(this.getClass().getResource("apple.png") );
    ImageIcon iih = new ImageIcon(this.getClass().getResource("head.png")) ;

    seems that these images are missing

  3. #3
    palie is offline Member
    Join Date
    Jan 2012
    Posts
    6
    Rep Power
    0

    Default Re: Exception in thread "main" java.lang.NullPointerException

    where can i get those image or should i create those image using java??

  4. #4
    eRaaaa is offline Senior Member
    Join Date
    Oct 2010
    Location
    Germany
    Posts
    787
    Rep Power
    5

    Default Re: Exception in thread "main" java.lang.NullPointerException

    No, normally you get the pictures from the site where you have the code from :-)
    If not - search your own images which looks like Exception in thread &quot;main&quot; java.lang.NullPointerException-snake.png :D

  5. #5
    DarrylBurke's Avatar
    DarrylBurke is online now Member
    Join Date
    Sep 2008
    Location
    Madgaon, Goa, India
    Posts
    11,202
    Rep Power
    19

    Default Re: Exception in thread "main" java.lang.NullPointerException

    i just found this coding and try to run.
    Er, programming doesn't work that way. Sure, you can copy code you find*, but it's also necessary to understand what it does.

    db

    *edit Subject to copyright and licensing terms, of course (search SOPA/PIPA for more details)
    If you're forever cleaning cobwebs, it's time to get rid of the spiders.

  6. #6
    nabil is offline Member
    Join Date
    Jan 2012
    Posts
    17
    Rep Power
    0

    Default Re: Exception in thread "main" java.lang.NullPointerException

    hi..i'm palie's partner in his final project..yup,we know about that copyright and evrything..
    actually,we are not trying to steal that code and make it ours,but we just take it first to try to run it to find out how does it work..we are new in JAVA..we are trying to use that code and change it by using our own declaration and design..we just use that code as our guide..so first of all we need u guys helps to help us run this coding so we can look how those it run..we are totally not a stealer..we want to learn from better person in this JAVA just as all of u guys here..so please help us..

  7. #7
    Fubarable's Avatar
    Fubarable is offline Moderator
    Join Date
    Jun 2008
    Posts
    19,316
    Blog Entries
    1
    Rep Power
    26

    Default Re: Exception in thread "main" java.lang.NullPointerException

    I don't know about the others, but my experience here has been that when folks try to use "found" code it often ends in disaster. You're far better off just simply creating the program yourself, and as a bonus you'll learn a lot more too. Just take small steps, test and debug often, and soon, you'll have a solution.

    Luck!
    PhHein likes this.

Similar Threads

  1. Replies: 5
    Last Post: 12-21-2011, 06:44 PM
  2. Replies: 5
    Last Post: 10-11-2011, 12:16 AM
  3. Replies: 6
    Last Post: 07-16-2009, 03:30 PM
  4. Replies: 1
    Last Post: 07-16-2009, 10:35 AM
  5. Replies: 1
    Last Post: 07-16-2007, 06:32 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •