title: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Error
body: <p>Hello I'm a new programmer at an high school level as a result I do not know much about programming and am getting quite a few errors which have been resolved while others I completely do not understand. I am to make a simple <code>Check Box</code> selection program where the user gets to pick between a variety of choices and depending on their action the image changes. The program itself compiles perfectly but when I run it however it gives me some complications. Here is my program:</p>
  
  <pre><code>package components;
  
  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  
  public class Workshop extends JPanel
                        implements ItemListener {
  JCheckBox winterhatButton;
  JCheckBox sportshatButton;
  JCheckBox santahatButton;
  JCheckBox redshirtButton;
  JCheckBox brownshirtButton;
  JCheckBox suitButton;
  JCheckBox denimjeansButton;
  JCheckBox blackpantsButton;
  JCheckBox khakipantsButton;
  
  
      StringBuffer choices;
  JLabel pictureLabel;
  
  public Workshop() {
      super(new BorderLayout());
  
      //Create the check boxes.
      winterhatButton = new JCheckBox("Winter Hat");
      winterhatButton.setMnemonic(KeyEvent.VK_Q);
  
  
      sportshatButton = new JCheckBox("Sports Hat");
      sportshatButton.setMnemonic(KeyEvent.VK_W);
  
  
      santahatButton = new JCheckBox("Santa hat");
      santahatButton.setMnemonic(KeyEvent.VK_E);
  
  
      redshirtButton = new JCheckBox("Red Shirt");
      redshirtButton.setMnemonic(KeyEvent.VK_R);
  
  
      brownshirtButton = new JCheckBox("Brown Shirt");
      brownshirtButton.setMnemonic(KeyEvent.VK_T);
  
  
      suitButton = new JCheckBox("Suit");
      suitButton.setMnemonic(KeyEvent.VK_Y);
  
  
      suitButton = new JCheckBox("Denim Jeans");
      suitButton.setMnemonic(KeyEvent.VK_U);
  
  
      blackpantsButton = new JCheckBox("Black Pants");
      blackpantsButton.setMnemonic(KeyEvent.VK_I);
  
  
      khakipantsButton = new JCheckBox("Khaki Pants");
      khakipantsButton.setMnemonic(KeyEvent.VK_O);
  
  
  
      //Register a listener for the check boxes.
  
      winterhatButton.addItemListener(this);
      sportshatButton.addItemListener(this);
      santahatButton.addItemListener(this);
      redshirtButton.addItemListener(this);
      brownshirtButton.addItemListener(this);
      suitButton.addItemListener(this);
      denimjeansButton.addItemListener(this);
      blackpantsButton.addItemListener(this);
      khakipantsButton.addItemListener(this);
  
  
      //Indicates
      choices = new StringBuffer("---------");
  
  
      //Set up the picture label
      pictureLabel = new JLabel();
      pictureLabel.setFont(pictureLabel.getFont().deriveFont(Font.ITALIC));
      updatePicture();
  
       //Put the check boxes in a column in a panel
      JPanel checkPanel = new JPanel(new GridLayout(0, 1));
      checkPanel.add(winterhatButton);
      checkPanel.add(sportshatButton);
      checkPanel.add(santahatButton);
      checkPanel.add(redshirtButton);
      checkPanel.add(brownshirtButton);
      checkPanel.add(suitButton);
      checkPanel.add(denimjeansButton);
      checkPanel.add(blackpantsButton);
      checkPanel.add(khakipantsButton);
  
  
      add(checkPanel, BorderLayout.LINE_START);
      add(pictureLabel, BorderLayout.CENTER);
      setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
  }
  
  
      /** Listens to the check boxes. */
  public void itemStateChanged(ItemEvent e) {
      int index = 0;
      char c = '-';
      Object source = e.getItemSelectable();
  
      if (source == winterhatButton) {
          index = 0;
          c = 'q';
      } else if (source == sportshatButton) {
          index = 1;
          c = 'w';
      } else if (source == santahatButton) {
          index = 2;
          c = 'e';
      } else if (source == redshirtButton) {
          index = 3;
          c = 'r';
      } else if (source == brownshirtButton) {
          index = 4;
          c = 't';
      } else if (source == suitButton) {
          index = 5;
          c = 'y';
      } else if (source == denimjeansButton) {
          index = 6;
          c = 'u';
      } else if (source == blackpantsButton) {
          index = 7;
          c = 'i';
      } else if (source == khakipantsButton) {
          index = 8;
          c = 'o';
      } 
  
  
      if (e.getStateChange() == ItemEvent.DESELECTED) {
          c = '-';
      }
  
      //Apply the change to the string.
      choices.setCharAt(index, c);
  
      updatePicture();
  }
  
  
  protected void updatePicture() {
      //Get the icon corresponding to the image.
      ImageIcon icon = createImageIcon(
                                  "images/bear/bear-"
                                  + choices.toString()
                                  + ".gif");
      pictureLabel.setIcon(icon);
      pictureLabel.setToolTipText(choices.toString());
      if (icon == null) {
          pictureLabel.setText("Missing Image");
      } else {
          pictureLabel.setText(null);
      }
  }
  
  /** Returns an ImageIcon, or null if the path was invalid. */
  protected static ImageIcon createImageIcon(String path) {
      java.net.URL imgURL = Workshop.class.getResource(path);
      if (imgURL != null) {
          return new ImageIcon(imgURL);
      } else {
          System.err.println("Couldn't find file: " + path);
          return null;
      }
  }
  
    private static void createAndShowGUI() {
      //Create and set up the window.
      JFrame frame = new JFrame("Build a Bear at Safeer's Workshop!");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
      //Create and set up the content pane.
      JComponent newContentPane = new Workshop();
      newContentPane.setOpaque(true); //content panes must be opaque
      frame.setContentPane(newContentPane);
  
      //Display the window.
      frame.pack();
      frame.setVisible(true);
  }
  
  public static void main(String[] args) {
      //Schedule a job for the event-dispatching thread:
      //creating and showing this application's GUI.
      javax.swing.SwingUtilities.invokeLater(new Runnable() {
          public void run() {
              createAndShowGUI();
          }
      });
  }
  }
  </code></pre>
  
  <p>Well up to this part it runs smoothly and complies but when I proceed to run the program I get this error.</p>
  
  <pre><code>&gt; run components.Workshop
  Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
  at components.Workshop.&lt;init&gt;(Workshop.java:75)
  at components.Workshop.createAndShowGUI(Workshop.java:195)
  at components.Workshop.access$0(Workshop.java:189)
  at components.Workshop$1.run(Workshop.java:209)
  at java.awt.event.InvocationEvent.dispatch(Unknown Source)
  at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
  at java.awt.EventQueue.access$000(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
  at java.awt.EventQueue.dispatchEvent(Unknown Source)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
  at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  at java.awt.EventDispatchThread.run(Unknown Source)
  </code></pre>
  
  <p>Might be a silly mistake however I cant seem to figure this out. Please Help and thank you</p>
  
  <pre><code>     Here is the line that generates that error 
       private void jButtonSendActionPerformed(java.awt.event.ActionEvent evt)   {                                                
      // TODO add your handling code here:
      String message;
      if(messageBox.getText().length() &gt; 0){
          message  =  messageBox.getText();
          chatBox.append(message+"\n"); 
          printStream.println(message);//this line 
          printStream.flush();
          //printStream.close();
          messageBox.setText("");
      }
  } 
  </code></pre>