2013-02-20 4 views
0

Я продолжаю получать исключение нулевого указателя в строке между * линиями, когда я нажимаю. Я смотрел на него около часа и, похоже, не понял, почему. Любая помощь будет принята с благодарностью. Благодарю.java gui NullPointerException

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(); 
     } 
    } 
} 
+3

Я не вижу, где что вы инициализирован 'letterList' – MadProgrammer

ответ

6

Вы не инициализировали letterList.

Добавьте следующую строку в конструктор для WholePanel:

letterList = new ArrayList<Letter>(); 
+0

DUH, я знал, что это должно было быть что-то глупо, как это. благодаря – Covertpyro