title: Can't get text from another class to print out on another one (noob)
body: <p>I posted this code earlier, and I got alot of helpful answers and the majority was that I need to change my code completely. Which I understand, and I will do tomorrow! But right now, this is eating away at me at why this won't work. </p>
  
  <p>I am trying to get the sendText from the ChatBox class, to my MessageWindow class and output in the messagePane. That's it. It seems so simple, and it probably is...but I have literally been at this for 10 hours straight. I just want it to output what I put in the ChatBox to the MessageWindow, without completely changing my code. Please help :( </p>
  
  <pre><code>public class ChatBox extends JPanel {
  
  private JScrollPane scrollPane;
  private String sendText;
  
  public ChatBox() {
      final JTextArea chatPane = new JTextArea();
  
      scrollPane = new JScrollPane(chatPane,
              JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
              JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      add(scrollPane);
      scrollPane.setMinimumSize(new Dimension(550, 50));
      scrollPane.setPreferredSize(new Dimension(550, 50));
  
      chatPane.addKeyListener(new KeyListener() {
  
          @Override
          public void keyPressed(KeyEvent e) {
          }
  
          @Override
          public void keyReleased(KeyEvent e) {
              if( e.getKeyCode() == KeyEvent.VK_ENTER ) {
                  sendText = chatPane.getText();
                  setText(sendText);
                  chatPane.setText(null);
                  // System.out.println(sendText); // I can see this in console
              }
  
          }
  
          @Override
          public void keyTyped(KeyEvent e) {
          }
  
      });
  
  }
  
  
  public String getText() {
      return sendText;
  }
  
  
  public void setText(String sendText) {
      this.sendText = sendText;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>In my head, I am setting the sendText -> whatever I input. Then in the MessageWindow class, I am trying to use the getter to get the text and output in the messagePane.</p>
  
  <pre><code>public class MessageWindow extends JPanel {
  
  private ChatBox box = new ChatBox();
  
  public MessageWindow() {
      JTextArea messagePane = new JTextArea();
  
      setLayout(new GridBagLayout());
  
      GridBagConstraints gc = new GridBagConstraints();
  
      gc.weightx = 1;
      gc.weighty = 1;
      gc.fill = GridBagConstraints.BOTH;
      gc.insets = new Insets(5, 5, 5, 5);
      add(new JScrollPane(messagePane), gc);
  
      System.out.println(box.getText());   // Getting null in the console.
      messagePane.append(box.getText());   // Not getting anything on messagePane.
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>I know I need to use ActionListeners and a JTextField, instead of a JTextArea. And I promise I will start that tomorrow. I will scrap this whole program as it is, I just need to know why this basic things fails me :( I knew while I was learning Java that getters/setters were going to be a problem for me to completely understand, and I guess I am right about that lol...</p>
  
  <p>Thanks for any help!!!</p>
  
  <p><strong>NEW CODE</strong></p>
  
  <pre><code>public class MessageWindow extends JPanel {
  
  private ChatBox box = new ChatBox(this);
  
  public void OnTextSet(String s) {
      System.out.println(s);
  }
  
  public MessageWindow() {
      JTextArea messagePane = new JTextArea();
  
      setLayout(new GridBagLayout());
  
      GridBagConstraints gc = new GridBagConstraints();
  
      gc.weightx = 1;
      gc.weighty = 1;
      gc.fill = GridBagConstraints.BOTH;
      gc.insets = new Insets(5, 5, 5, 5);
      add(new JScrollPane(messagePane), gc);
  
      System.out.println(box.getText()); // Getting null in the console.
      messagePane.append(box.getText()); // Not getting anything on
                                          // messagePane.
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>And</p>
  
  <pre><code>public class ChatBox extends JPanel {
  
  private JScrollPane scrollPane;
  private String sendText = "";
  private MessageWindow mw;
  
  public ChatBox() {
      final JTextArea chatPane = new JTextArea();
  
      scrollPane = new JScrollPane(chatPane,
              JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
              JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      add(scrollPane);
      scrollPane.setMinimumSize(new Dimension(550, 50));
      scrollPane.setPreferredSize(new Dimension(550, 50));
  
      chatPane.addKeyListener(new KeyListener() {
  
          @Override
          public void keyPressed(KeyEvent e) {
          }
  
          @Override
          public void keyReleased(KeyEvent e) {
              if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                  sendText = chatPane.getText();
                  setText(sendText);
                  chatPane.setText(null);
                  mw.OnTextSet(sendText);
                  // System.out.println(sendText); // I can see this in
                  // console
              }
  
          }
  
          @Override
          public void keyTyped(KeyEvent e) {
          }
  
      });
  
  }
  
  public ChatBox(MessageWindow mw) {
      this.mw = mw;
  }
  
  
  public String getText() {
      return sendText;
  }
  
  public void setText(String sendText) {
      this.sendText = sendText;
  }
  </code></pre>
  
  <p>}</p>