title: How do I append text to a JTextArea from another class?
body: <p>I'm trying to put a console-type thing on my GUI and for that I'm pretty sure that I have to append text to the JTextArea. For the console to actually be worthwhile I'll have to append text from a different class. For that I built a method to append a string to my console but it threw a NullPointerException and failed.</p>
  
  <p>What I'm wondering is how I can append text to my console (JTextArea) from other classes.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>package com.robot;
  
  import javax.swing.JButton;
  import javax.swing.JFrame;
  import javax.swing.JPanel;
  import javax.swing.JScrollPane;
  import javax.swing.JTextArea;
  import javax.swing.ScrollPaneConstants;
  
  public class GUI extends JFrame implements Runnable {
  
  static JTextArea console;
  
  //defines the line break
  static String newline = System.getProperty("line.separator");
  
  //start of the constructor method for GUI
  public GUI() {
  
      //makes the program unable to be resized
      this.setResizable(false);
  
      //allows the user to close the program with the x button
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
      //sets the title of the program
      this.setTitle("ROBOT Alpha Alfred Version 3.0");
  
      //creates panels to hold the elements of the GUI
      JPanel mainPanel = new JPanel();
      JPanel buttonPanel = new JPanel();
      JPanel consolePanel = new JPanel();
  
      //creates buttons
      JButton runDemo = new JButton("Run Demo");
      JButton runLive = new JButton("Run Live");
      JButton scan = new JButton("Scan Market");
      JButton findPatterns = new JButton("Find Patterns");
      JButton cleanFolder = new JButton("Clean Up Folder");
      JButton configureSettings = new JButton("Configure Settings");
  
      //creates the console
      JTextArea console = new JTextArea(6, 40);
  
      //sets the default text of the console
      console.setText("----------------------- ROBOT Console -----------------------" + newline);
  
      //makes the console unable to be edited
      console.setEditable(false);
  
      //sets the line wrapping of the console
      console.setLineWrap(true);
      console.setWrapStyleWord(true);
  
      //creates scroll bars
      JScrollPane scrollBar = new JScrollPane(console);
      scrollBar.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      scrollBar.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
  
      //adds buttons to the buttonPanel
      buttonPanel.add(runDemo);
      buttonPanel.add(runLive);
      buttonPanel.add(scan);
      buttonPanel.add(findPatterns);
      buttonPanel.add(cleanFolder);
      buttonPanel.add(configureSettings);
  
      //adds the console to the console panel
      consolePanel.add(scrollBar);
  
      //adds panels to the main panel
      mainPanel.add(buttonPanel);
      mainPanel.add(consolePanel);
  
      //adds the main panel to the frame
      this.add(mainPanel);
  
      //packs the GUI
      this.pack();
  
      //sizes the GUI
      this.setSize(600, 400);
  
      //centers the GUI
      this.setLocationRelativeTo(null);
  
      //sets the GUI to be visible
      this.setVisible(true);
  
  }
  
  public void run() {
  
  }
  
  public static void add(String string) {
      console.append(string + newline);
  }
  
  }
  </code></pre>
  
  <p>Here is the method for appending the text to the console:</p>
  
  <pre><code>public static void add(String string) {
      console.append(string + newline);
  }
  </code></pre>
  
  <p>Here is a part that you are really going to want to pay attention to (well, still pay attention to the append method):</p>
  
  <pre><code>static JTextArea console;
  </code></pre>
  
  <p>Here is how the add method is call and where it throws the NullPointerException:</p>
  
  <pre><code>//main method start
  public static void main(String[] args) throws InterruptedException, IOException, AWTException {
  
      //opens up the GUI
      (new Thread(new GUI())).start();
  
      GUI.add("Text to add");
  
      //possible methods
      //ScanMarket.scanMarket(); //scans market for data
      //FindPattern("Images"); //finds pattern among images in image folder labeled Images
  
  }//end of main method
  </code></pre>
  
  <p>By the way I tried changing</p>
  
  <p>console.setEditable(false);</p>
  
  <p>to</p>
  
  <p>console.setEditable(true);</p>
  
  <p>and a NullPointerException was still thrown. Thanks so much for your help!</p>