Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Null Pointer Exception

David.WarwickOct 25 2013

Hello all. I am a newbie. I have completed one college class on Java. I am trying to develop a simple tic-tac-toe game. I have 2 classes. One is TicTacToe and the other is TicTacToeBoard. Here is the code I have so far.

class TicTacToe {
TicTacToeBoard board = new TicTacToeBoard();

    private int moves = 0;
    private int Gamemoves;
   

    public static void main(String[] args) {

        TicTacToe game = new TicTacToe();
        game.startGame();
    }
    public void startGame() {
        board.setVisible(true);
    }
       
    public int getMoves() {
        return moves;
    }   
    public void setMoves(int moves) {
        this.moves = moves;
    }
   
}

public class TicTacToeBoard extends javax.swing.JFrame {

    TicTacToe game;
    int mmSet, ulSet, umSet, urSet, mlSet, mrSet, llSet, lmSet, lrSet;
    int NumMoves = 0;

public TicTacToeBoard() {
        initComponents();
    }

private void btnMMStateChanged(javax.swing.event.ChangeEvent evt) {                                  

        if (mmSet == 0) {
            mmSet = 1;

            NumMoves = game.getMoves();

            System.out.println(NumMoves);
            btnMM.setIcon(new javax.swing.ImageIcon(getClass().getResource("/tic/tac/toe/images/X.png")));
            stripMouseListeners((java.awt.Component) btnMM);

        } else {
    }                                 
    }

The problem occurs 12 of TicTacToeBoard class. I have read about this problem and it seems like my problem is that I am not properly using the game variable. I am not sure where to go from here. Here is the stack trace.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

at tic.tac.toe.TicTacToeBoard.btnMMStateChanged(TicTacToeBoard.java:179)

at tic.tac.toe.TicTacToeBoard.access$400(TicTacToeBoard.java:15)

at tic.tac.toe.TicTacToeBoard$5.stateChanged(TicTacToeBoard.java:114)

at javax.swing.AbstractButton.fireStateChanged(AbstractButton.java:1913)

at javax.swing.AbstractButton$Handler.stateChanged(AbstractButton.java:2333)

at javax.swing.DefaultButtonModel.fireStateChanged(DefaultButtonModel.java:349)

at javax.swing.DefaultButtonModel.setArmed(DefaultButtonModel.java:188)

at javax.swing.plaf.basic.BasicButtonListener.mousePressed(BasicButtonListener.java:233)

at java.awt.Component.processMouseEvent(Component.java:6502)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)

at java.awt.Component.processEvent(Component.java:6270)

at java.awt.Container.processEvent(Container.java:2229)

at java.awt.Component.dispatchEventImpl(Component.java:4861)

at java.awt.Container.dispatchEventImpl(Container.java:2287)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4489)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

at java.awt.Container.dispatchEventImpl(Container.java:2273)

at java.awt.Window.dispatchEventImpl(Window.java:2719)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)

at java.awt.EventQueue.access$200(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:694)

at java.awt.EventQueue$3.run(EventQueue.java:692)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

at java.awt.EventQueue$4.run(EventQueue.java:708)

at java.awt.EventQueue$4.run(EventQueue.java:706)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Can someone please explain the proper way for me to try to get / set the number of moves from the TicTacToeBoard class?

Thanks,

David

Comments

Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Nov 22 2013
Added on Oct 25 2013
0 comments
1,052 views