在我的Swing Goose类中获取NullPointerException

时间:2011-11-03 23:06:54

标签: java swing nullpointerexception

我认为我的_holder和/或_gooseActionnull ....以下是_holder_gooseAction实例化的相关代码/类:

Goose.java

public class Goose {
    //Goose class
    private ActionHolder _holder;
    private gooseAction _gooseAction;

    public Goose (JPanel container, GooseAction action, ActionHolder holder) {
        super(container); 
        _holder = holder;
        _gooseAction = _holder.getAction();
        _gooseAction = action;  
    }

    public void react() {
        _gooseAction.stop(); 
        _holder.getAction(); 
        _gooseAction = _holder.getAction(); 
        _gooseAction.setObjective(this); 
        _gooseAction.start();   
    }

ControlPanel.java

public class ControlPanel {
    //top level class
    public ControlPanel() { 
         super();
        _holder = new ActionHolder(_moveAction);
          _drawingPanel = new DrawingPanel(_holder); 
         _gooseAction = new GooseAction();
         _doNothing = new StopBehavior();
         _kingGoose = new FollowBehavior(_kingGoose);
    } 

    private GooseAction _gooseAction;
    private ActionHolder _holder;

    public class ActionHolder {
        private GooseAction _GooseAction;
        public ActionHolder(GooseAction Action) {
            _gooseAction = Action;
        }
        public void setAction(GooseAction GooseAction) {
            _gooseAction = GooseAction;
        }
        public GooseAction getAction() {
            return _gooseAction.copy();
        }
    }

public class ActionButton extends JButton {
    public ActionButton(String string, boolean b, GooseAction action, ActionHolder holder) {
        super(string, b);
        _holder = holder;
        _gooseAction = action;

    }
}

private class ActionListener implements ChangeListener {

    public ActionListener(GooseAction action) { 
    }

    public void stateChanged(ChangeEvent e) {
        _holder.setAction(_gooseAction);
    }
}

1 个答案:

答案 0 :(得分:4)

if(_holder == null) System.out.println("_holder is null");
if(_gooseAction == null) System.out.println("_gooseAction is null");