title: Java: Not able to print on TextArea from other class
body: <p>I have one frame in which one TestArea is there. When I append some string from this class then String is appended but when I want to append String from other class then String is not appended. I created one method to append string in TextArea, when I call this method in this class then string is appended on text Area. But when I call this method from other Class then String is not appended on TextArea.</p>
  
  <p>Code (MainClass):</p>
  
  <pre><code>public class MainClass {
  private JFrame frame;
  private TextArea textArea;
  private Font font;
  private JButton button1;
  private JButton button2;
  private SecondClass secondClass;
  
  public MainClass() {
      try {
          UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
          frame = new JFrame("XXX");
          frame.setBounds(200, 200, 600, 400);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.getContentPane().setLayout(null);
  
          button1 = new JButton("Button1");
          font = new Font("Arial", Font.BOLD, 13);
          button1.setFont(font);
          button1.setBounds(4, 4, 289, 30);
  
          button2 = new JButton("Button2");
          button2.setFont(font);
          button2.setBounds(300, 4, 289, 30);
  
          font = null;
  
          textArea = new TextArea();
          textArea.setBounds(4, 38, 585, 322);
          textArea.setEnabled(true);
  
          font = new Font("Arial", Font.PLAIN, 13);
          textArea.setFont(font);
  
          frame.add(button1);
          frame.add(button2);
          frame.add(textArea);
  
          button1.addActionListener(new ActionListener() {
              @Override
              public void actionPerformed(ActionEvent arg0) {
                  textArea.append("*** I am in actionPerformed() ***\n");
                  appendToTextArea("Call from actionPerformed() method\n");
              }
          });
  
          button2.addActionListener(new ActionListener() {
              @Override
              public void actionPerformed(ActionEvent arg0) {
                  secondClass = new SecondClass();
                  secondClass.printOnTextArea();
              }
          });
  
      } catch (Exception e) {
          textArea.append(e.toString());
      }
  }
  
  public void appendToTextArea(String str) {
      System.out.println(str+"\n");
  
      textArea.append(str+"\n"); //this line not work when I call this method from other class
  }
  
  public static void main(String[] args) {
      EventQueue.invokeLater(new Runnable() {
          @Override
          public void run() {
              MainClass window = new MainClass();
              window.frame.setVisible(true);
          }
      });
  }
  
  }
  </code></pre>
  
  <p>Code(SecondClass):</p>
  
  <pre><code>import com.grissserver.MainClass;
  
  public class SecondClass extends MainClass{
  void printOnTextArea() {
      System.out.println("*** printOnTextArea() ***");
      super.appendToTextArea("call from Second Class in printOnTextArea()");
  }
  }
  </code></pre>
  
  <p>Please give some Idea, why this is not working.</p>