title: TextArea vs JTextArea Java
body: <p>So I was messing around with JTextAreas for a text adventure game and using some code snippets that I found online. Some of these snippets would not work no matter what I tried, I then realize that Some of the snippets where from TextArea and not JTextArea. So what is the difference between the two? I found some out with a google search that the JTextArea class has to be embedded in a JScrollPane, but what does that mean?</p>
  
  <p>Code that I'm using: </p>
  
  <pre><code>import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  
  public class Text extends JPanel implements ActionListener {
       protected JTextField textField;
       protected JTextArea textArea;
       private final static String newline = "\n";
  
  public Text() {
      super(new GridBagLayout());
  
      textField = new JTextField(75);
      textField.addActionListener(this);
  
      textArea = new JTextArea(5,75);
      textArea.setEditable(false);
      JScrollPane scrollPane = new JScrollPane(textArea);
  
      //Add Components to this panel.
      GridBagConstraints c = new GridBagConstraints();
      c.gridwidth = GridBagConstraints.REMAINDER;
  
      c.fill = GridBagConstraints.HORIZONTAL;
      add(textField, c);
  
      c.fill = GridBagConstraints.BOTH;
      c.weightx = 1.0;
      c.weighty = 1.0;
      add(scrollPane, c);
  }
  
  public void actionPerformed(ActionEvent evt) {
      String text = textField.getText();
      textArea.append(text + newline);
      textField.selectAll();
  
      //Make sure the new text is visible, even if there
      //was a selection in the text area.
      textArea.setCaretPosition(textArea.getDocument().getLength());
  }
  
  /**
   * Create the GUI and show it.  For thread safety,
   * this method should be invoked from the
   * event dispatch thread.
   */
  private static void createAndShowGUI() {
      //Create and set up the window.
      JFrame frame = new JFrame("Text adventure");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
      //Add contents to the window.
      frame.add(new Text());
  
      //Display the window.
      frame.pack();
      frame.setVisible(true);
  }
  
  public static void main(String[] args) {
      //Schedule a job for the event dispatch thread:
      //creating and showing this application's GUI.
      javax.swing.SwingUtilities.invokeLater(new Runnable() {
          public void run() {
              createAndShowGUI();
          }
      });
  }
  </code></pre>
  
  <p>}</p>