title: Write to jTextArea from different class
body: <p>Just wondering if it is possible to append to a jTextArea in one class from a separate class? I basically have a simple class that is constantly running calculations and I want to view the output on a GUI which I have created in its own class. The program executes fine via System.out.println but I want to view this on my textarea now. Many thanks in advance for any guidance.</p>
  
  <p>Updated - The code below is what I am running. The area in question is the following (This is a method from a rather large class) : </p>
  
  <pre><code>System.out.println("From Server:" + sentenceFromServer);
  </code></pre>
  
  <p>I want this output to be written to a seperate jTextArea which is in another class which is below the below class.</p>
  
  <p>Client Class</p>
  
  <pre><code>public void run() {
     SocketForm form = new SocketForm();
      //File file=null;
  
    long startTime; // Starting time of program, in milliseconds.
    long endTime;   // Time when computations are done, in milliseconds.
    double time; 
    System.out.println("Variables Set");
    String serverName = "localhost";
     try {
      //if (args.length &gt;= 1)
         // serverName = args[0];
    InetAddress serverIPAddress = InetAddress.getByName(serverName);
  
      //get server port;
      int serverPort = form.cliportNo;
      //if (args.length &gt;= 2)
        //  serverPort = Integer.parseInt(args[1]);
      //create socket
      DatagramSocket clientSocket = new DatagramSocket();
      //get input from keybaord
      byte[] sendData = new byte[byteSize];
      //BufferedReader inFromUser = new BufferedReader(new InputStreamReader (System.in));
      //while (true){
      //String sentence = inFromUser.readLine();
      startTime = System.currentTimeMillis();
      //sendData = sentence.getBytes();
      System.out.println("About to identify image");
      String fileName = "/Users/Andrew/Desktop/pic.jpg";
      File f = new File(fileName);
  
      FileInputStream fis = null;
      try {
          fis = new FileInputStream(f);
          System.out.println("Total file size to read in bytes is : " + fis.available());
  
      } catch (IOException e) {}
  
  
   Path path = Paths.get("/Users/Andrew/Desktop/pic.jpg");
   //byte[] data = Fles.readAllBytes(path);
    sendData = Files.readAllBytes(path);   
  
      try {
      for( int index = 0; index &lt; sendData.length ; index += byteSize ) {
       DatagramPacket packet = new DatagramPacket( sendData, index, Math.min( byteSize, sendData.length-index ), serverIPAddress, serverPort);
       clientSocket.send(packet);
      //DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverIPAddress, serverPort);
  
      //receive datagram
      byte[] receiveData = new byte [byteSize];
  
      DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
      clientSocket.receive(receivePacket);
      //print output
      String sentenceFromServer = new String(receivePacket.getData());
      System.out.println("From Server:" + sentenceFromServer);
      }
      System.out.println("The End");
      }
      catch (Exception e) {}
      //close client socket
              //clientSocket.close();
          endTime = System.currentTimeMillis();
    time = endTime - startTime;
        System.out.println("Time :" + time);
     // }
  }
     catch (Exception e) {}
  }
  </code></pre>
  
  <p>SocketForm Class (GUI)</p>
  
  <pre><code>public static void main(String args[]) {
      /* Set the Nimbus look and feel */
      //&lt;editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "&gt;
      /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
       * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
       */
      try {
          for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
              if ("Nimbus".equals(info.getName())) {
                  javax.swing.UIManager.setLookAndFeel(info.getClassName());
                  break;
              }
          }
      } catch (ClassNotFoundException ex) {
          java.util.logging.Logger.getLogger(SocketForm.class.getName()).log(java.util.logging.Level.SEV
      }
      //&lt;/editor-fold&gt;
  
      /* Create and display the form */
      java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
              new SocketForm().setVisible(true);
          }
      });
  }
  // Variables declaration - do not modify                     
  private javax.swing.ButtonGroup buttonGroup1;
  private javax.swing.JPanel jPanel1;
  private javax.swing.JPanel jPanel2;
  private javax.swing.JScrollPane jScrollPane1;
  private javax.swing.JScrollPane jScrollPane2;
  private javax.swing.JTabbedPane jTabbedPane1;
  public static javax.swing.JTextArea jTextArea1;
  private javax.swing.JTextField jTextField1;
  private javax.swing.JTextField jTextField2;
  
  // End of variables declaration                   
  </code></pre>
  
  <p>}</p>