title: Display output in a tabbed window
body: <p>I have developed a task manager for Linux in Java. The output as of now is displayed in the console whereas a tabbed window appears separately (this was done using Java Swing). 
  Now I want the output from the console to be displayed in the tabbed window. </p>
  
  <p>How do I do it? </p>
  
  <p>There are classes that I've used. One for the task manager functionality and the other for GUI. I've pasted below the coding.</p>
  
  <pre><code>**TabbedPaneDemo1.java**
  
  package components;
  import java.io.BufferedReader;
  import java.io.BufferedWriter;
  import java.io.File;
  import java.io.FileOutputStream;
  import java.io.FileWriter;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.io.PrintStream;
  import java.io.Writer;
  import java.util.Iterator;
  import java.util.List;
  
  
  /*
   * TabbedPaneDemo.java requires one additional file:
   *   images/middle.gif.
   */
  
  import javax.swing.JTabbedPane;
  import javax.swing.ImageIcon;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.JFrame;
  import javax.swing.JComponent;
  import javax.swing.SwingUtilities;
  import javax.swing.UIManager;
  import javax.swing.JTextField;
  import javax.swing.JTextArea;
  import java.awt.BorderLayout;
  import java.awt.Dimension;
  import java.awt.GridLayout;
  import java.awt.TextArea;
  import java.awt.event.KeyEvent;
  import java.io.BufferedReader;
  import java.io.FileOutputStream;
  import java.io.InputStreamReader;
  import java.io.PrintStream;
  
  public class TabbedPaneDemo1
  {
  
  public static void main(String args[]) throws Exception
  {
      try
      {   
          TextArea textarea = new TextArea();
          TabbedPaneDemo obj = new TabbedPaneDemo();
          obj.fn();
          String line;
          String result = "";
          FileOutputStream out;
          //FileOutputStream out; // declare a file output object
          PrintStream p;
          Process p1 = Runtime.getRuntime().exec("tasklist.exe");
          out = new FileOutputStream("myfile.txt");//write to a file//
          p = new PrintStream( out );
          BufferedReader input = new BufferedReader(new InputStreamReader(p1.getInputStream()));//read form a file//
          while ((line = input.readLine()) != null)
          {
              System.out.println(line);
              //textarea.append(line + "\n");
              result += line+"\n";
              p.println (line);
              //textarea.setVisible(true);    
          }
          //msgBox(result);
          p.close();
          input.close();   
      }
      catch(Exception e)
      {
  
      }
  }
      public static void msgBox(String msg) {
      javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
      null, msg, "WindowsUtils",
      javax.swing.JOptionPane.DEFAULT_OPTION);
      }
  }
  
  **TabbedPaneDemo.java**
  
  package components;
  
  import java.awt.BorderLayout;
  import java.awt.GridLayout;
  import java.awt.event.KeyEvent;
  
  import javax.swing.ImageIcon;
  import javax.swing.JComponent;
  import javax.swing.JFrame;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.JTabbedPane;
  import javax.swing.SwingUtilities;
  import javax.swing.UIManager;
  
  import javax.swing.JTabbedPane;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.JFrame;
  import javax.swing.JComponent;
  import javax.swing.SwingUtilities;
  import javax.swing.UIManager;
  import javax.swing.JTextField;
  import java.awt.BorderLayout;
  import java.awt.Dimension;
  import java.awt.GridLayout;
  import java.awt.event.KeyEvent;
  
  public class TabbedPaneDemo extends JPanel {
  Integer i;
  public TabbedPaneDemo() {
      super(new GridLayout(1, 1));
  
      JTabbedPane tabbedPane = new JTabbedPane();
      ImageIcon icon = createImageIcon("images");
  
  
      JComponent panel1 = makeTextPanel("tasklist");
      tabbedPane.addTab("tasks", icon, panel1,
              "ta");
      tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
  
      JComponent panel2 = makeTextPanel("windows");
      tabbedPane.addTab("wins", icon, panel2,
              "wi");
      tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
  
  
      add(tabbedPane);`enter code here`
          tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);    
      }
      protected JComponent makeTextPanel(String text)
      {
          JPanel panel = new JPanel(false);
          JLabel filler = new JLabel(text);
          filler.setHorizontalAlignment(JLabel.CENTER);
          panel.setLayout(new GridLayout(1, 1));
          panel.add(filler);
          return panel;
      }
      protected static ImageIcon createImageIcon(String path) {
          java.net.URL imgURL = TabbedPaneDemo.class.getResource(path);
          if (imgURL != null) {
              return new ImageIcon(imgURL);
          } else {
              System.err.println("Couldn't find file: " + path);
              return null;
          }
      }
      private static void createAndShowGUI() {
          JFrame frame = new JFrame("TabbedPaneDemo");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.add(new TabbedPaneDemo(), BorderLayout.CENTER);
          frame.pack();
          frame.setVisible(true);
      }
      public static void fn() {
          SwingUtilities.invokeLater(new Runnable() {
              public void run()
              {
          UIManager.put("swing.boldMetal", Boolean.FALSE);
          createAndShowGUI();
              }
          });
      }
  }
  </code></pre>