0

I keep getting a null pointer exception at the line between the * lines when I click. I've been looking at it for about an hour and cant seem to figure out why. Any help would be greatly appreciated. Thanks.

    private Color currentColor;
    private char currentChar;
    private Letter letter;
    private JComboBox comboBox;
    private JPanel controlPanel;
    private Color[] colorArray = {Color.black,Color.blue,Color.cyan,Color.orange,Color.white,Color.yellow};
    private String[] colorStringArray = {"black","blue","cyan","orange","white","yellow"};
    private ArrayList<Letter> letterList;
    private JButton button1;
    private Canvas canvas;
    public WholePanel()
    {
        comboBox = new JComboBox(colorStringArray);
        // here we use black to draw a letter
        currentColor = colorArray[Color.black];

        // set the default character to 'A'
        currentChar = 'A';

        button1 = new JButton("Undo");


        controlPanel = new JPanel();
        controlPanel.add(button1);
        controlPanel.add(comboBox);

        canvas = new Canvas();
        JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, controlPanel, canvas);

        canvas.addMouseListener(new PointListener());
        add(sp);

         // make this panel listen to mouse
        addMouseListener(new PointListener());

        setBackground(Color.white);
        //This method needs to be called for this panel to listen to keys
        //When panel listens to other things, and go back to listen
        //to keys, this method needs to be called again.
        requestFocus();
    }
    private class PointListener implements MouseListener
    {
        int x;
        int y;
        // when a user clicks the panel (applet),
        // KeyListener is focused in it.
        public void mousePressed(MouseEvent event)
        {
            x = event.getX();
            y = event.getY();
            letter = new Letter(x,y,currentChar,colorArray[comboBox.getSelectedIndex()]);
            //******************************
            letterList.add(letter);
            //******************************
            for(Letter letter1 : letterList)
            {
                letter1.Draw(getGraphics());
            }
            x=y=0;
            requestFocus();
        }
    }
}
1
  • 3
    I don't see any where that you've initialised letterList Commented Feb 20, 2013 at 5:55

1 Answer 1

6

You didn't initialize letterList.

Add the following line to your constructor for WholePanel:

letterList = new ArrayList<Letter>();
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.