title: How to make my jframe scrollable without getting rid of the text
body: <p>So I'm having a bit of a problem with trying to figure out how to add a scrollbar to my Jframe window. I figured out how to do this but when I implemented it all of the components that were supposed to show up in the frame didn't so instead I got a blank frame. How do I make my frame scrollable? </p>
  
  <p>Here if my code for my GUI:</p>
  
  <pre><code>import java.awt.*;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import java.io.FileNotFoundException;
  import java.io.FileReader;
  import java.io.IOException;
  
  import javax.swing.*;
  public class FirstGUI2 {
  private Container pane;
  final boolean fill = true;
  final boolean weightX = true;
  final boolean RIGHT_TO_LEFT = false;
  public String mon = "";
  public String tues = "";
  public String wed = "";
  public String thu = "";
  public String fri = "";
  private JTextArea textAreaMon = new JTextArea(mon);
  private JTextArea textAreaTue = new JTextArea(tues);
  private JTextArea textAreaWed = new JTextArea(wed);
  private JTextArea textAreaThu = new JTextArea(thu);
  private JTextArea textAreaFri = new JTextArea(fri);
  private JTextArea description;
  
  public void addComponents(Container pane) {
      if (RIGHT_TO_LEFT)
          pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
  
      JButton button;
      pane.setLayout(new GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      c.weightx = 1;
      c.fill = GridBagConstraints.HORIZONTAL;
  
      button = new JButton("Open File");
      c.gridx = 1;
      c.gridy = 1;
      c.insets = new Insets(5, 5, 5, 5);
      pane.add(button, c);
  
      textAreaMon = new JTextArea(mon);
      // textAreaMon.append(mon.substring(0));
      textAreaMon.setLineWrap(true);
      textAreaMon.setEditable(false);
      c.gridx = 1;
      c.gridy = 2;
      //JScrollPane scroll = new JScrollPane(textAreaMon);
      pane.add(textAreaMon, c);
  
      textAreaTue = new JTextArea(tues);
      textAreaTue.setLineWrap(true);
      textAreaTue.setEditable(false);
      c.gridx = 1;
      c.gridy = 3;
      pane.add(textAreaTue, c);
  
      textAreaWed = new JTextArea(wed);
      textAreaWed.setLineWrap(true);
      textAreaWed.setEditable(false);
      c.gridx = 1;
      c.gridy = 4;
      pane.add(textAreaWed, c);
  
      textAreaThu = new JTextArea(thu);
      textAreaThu.setLineWrap(true);
      textAreaThu.setEditable(false);
      c.gridx = 1;
      c.gridy = 5;
      pane.add(textAreaThu, c);
  
      textAreaFri = new JTextArea(fri);
      textAreaFri.setLineWrap(true);
      textAreaFri.setEditable(false);
      c.gridx = 1;
      c.gridy = 6;
      pane.add(textAreaFri, c);
  
      description = new JTextArea(
              "\n Click the open button in order to select and im"
              + "port your .csv file. Your scehdule and times will be displayed in the schedule below.\n");
      description.setEditable(false);
      c.gridx = 1;
      c.gridy = 0;
  
      pane.add(description, c);
  
      // attaching the file opener to the open file button
      button.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent ae) {
  
              new InterfacePanel();
              //textAreaMon.setText(mon);
              makeGUI();
          }
      });
  }
  
  // creates the frame and showing the GUI to the user
  public static void makeGUI() {
      JFrame frame = new JFrame("Final Exam Scheduler");
      frame.setSize(1000, 1000);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JPanel panel = new JPanel();
  
      FirstGUI2 add = new FirstGUI2();
  
      JScrollPane pane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      add.addComponents(frame.getContentPane());
      frame.setContentPane(pane);
  
      add.printToGUI();
      frame.pack();
      frame.setVisible(true);
  }
  
  public void printToGUI() {
      // JText Fields
      mon = "Monday: \n \n 8:00 - 10:00:\t Group Exam 1 \n 10:15-12:15:\t Group Exam 2 \n 12:45 - 2:45:\t";
  //  while (!ArrayListsForClasses.time1.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time1.size(); i++) {
              mon += ArrayListsForClasses.time1.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time1.get(i).displayCourse());
              mon += ", ";
          }
      //}
      mon += "\n 3:00 - 5:00:\t";
      //while (!ArrayListsForClasses.time2.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time2.size(); i++) {
              mon += ArrayListsForClasses.time2.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time2.get(i).displayCourse());
              mon += ", ";
          }
      //}
      mon += "\n 5:30 - 7:30:\t Group Exam 3 \n 7:45 - 9:45:\t";
      //while (!ArrayListsForClasses.time3.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time3.size(); i++) {
              mon += ArrayListsForClasses.time3.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time3.get(i).displayCourse());
              mon += ", ";
          }
      //}
      mon += "\n \n";
      textAreaMon.setText(mon);
  
      // textAreaTues
      tues = "Tuesday: \n \n 8:00 - 10:00: \t";
      //while (!ArrayListsForClasses.time4.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time4.size(); i++) {
              tues += ArrayListsForClasses.time4.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time4.get(i).displayCourse());
              tues += ", ";
          }
      //}
      tues += "\n 10:15 - 12:15:\t Group Exam 4 \n 12:45 - 2:45:\t ";
      //while (!ArrayListsForClasses.time5.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time5.size(); i++) {
              tues += ArrayListsForClasses.time5.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time5.get(i).displayCourse());
              tues += ", ";
          }
      //}
      tues += "\n 3:00 - 5:00:\t ";
      //while (!ArrayListsForClasses.time6.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time6.size(); i++) {
              tues += ArrayListsForClasses.time6.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time6.get(i).displayCourse());
              tues += ", ";
          }
      //}
      tues += "\n 5:30 - 7:30:\t ";
      //while (!ArrayListsForClasses.time7.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time7.size(); i++) {
              tues += ArrayListsForClasses.time7.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time7.get(i).displayCourse());
              tues += ", ";
          }
      //}
      tues += "\n 7:45 - 9:45:\t ";
      //while (!ArrayListsForClasses.time8.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time8.size(); i++) {
              tues += ArrayListsForClasses.time8.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time8.get(i).displayCourse());
              tues += ", ";
          }
      //}
      tues += "\n \n";
      textAreaTue.setText(tues);
  
      // TextAreaWed
      wed = "Wednesday \n \n 8:00 - 10:00:\t";
      //while (!ArrayListsForClasses.time9.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time9.size(); i++) {
              wed += ArrayListsForClasses.time9.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time9.get(i).displayCourse());
              wed += ", ";
          }
      //}
      wed += "\n 10:15-12:15:\t";
      //while (!ArrayListsForClasses.time10.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time10.size(); i++) {
              wed += ArrayListsForClasses.time10.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time10.get(i).displayCourse());
              wed += ", ";
          }
      //}
      wed += "\n 12:45 - 2:45 :\t Group Exam 5 \n 3:00 - 5:00:\t";
      //while (!ArrayListsForClasses.time11.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time11.size(); i++) {
              wed += ArrayListsForClasses.time11.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time11.get(i).displayCourse());
              wed += ", ";
          }
      //}
      wed += "\n 5:30 - 7:30:\t";
      //while (!ArrayListsForClasses.time12.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time12.size(); i++) {
              wed += ArrayListsForClasses.time12.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time12.get(i).displayCourse());
              wed += ", ";
          }
      //}
      wed += "\n 7:45 - 9:45:\t";
      //while (!ArrayListsForClasses.time13.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time13.size(); i++) {
              wed += ArrayListsForClasses.time13.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time13.get(i).displayCourse());
              wed += ", ";
          }
      //}
      wed += "\n \n";
      textAreaWed.setText(wed);
      // TextAreaThurs
      thu = "Thursday \n \n 8:00 - 10:00:\t";
      //while (!ArrayListsForClasses.time14.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time14.size(); i++) {
              thu += ArrayListsForClasses.time14.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time14.get(i).displayCourse());
              thu += ", ";
          }
      //}
      thu += "\n 10:15-12:15 :\t Group Exam 6 \n 12:45 - 2:45:\t";
      //while (!ArrayListsForClasses.time15.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time15.size()-1; i++) {
              thu += ArrayListsForClasses.time15.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time15.get(i).displayCourse());
              thu += ", ";
          }
      //}
      thu += "\n 3:00 - 5:00:\t";
      //while (!ArrayListsForClasses.time16.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time16.size(); i++) {
              thu += ArrayListsForClasses.time16.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time16.get(i).displayCourse());
              thu += ", ";
          }
      //}
      thu += "\n 5:30 - 7:30:\t Group Exam 7 \n 7:45 - 9:45:\t";
      //while (!ArrayListsForClasses.time17.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time17.size(); i++) {
              thu += ArrayListsForClasses.time17.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time17.get(i).displayCourse());
              thu += ", ";
          }
      //}
      thu += "\n \n";
      textAreaThu.setText(thu);
  
      // TextAreaFri
      fri = "Friday \n \n 8:00 - 10:00:\t Group Exam 8 \n 10:15-12:15:\t";
      //while (!ArrayListsForClasses.time18.isEmpty()) {
          for (int i = 0; i &lt; ArrayListsForClasses.time18.size(); i++) {
              fri += ArrayListsForClasses.time18.get(i).displayCourse();
              System.out.println("Added to string for GUI: " + ArrayListsForClasses.time18.get(i).displayCourse());
              fri += ", ";
          }
      //}
      fri += "\n 12:45 - 2:45:\t Group Exam 9";
      fri += "\n \n";
      textAreaFri.setText(fri);
  }
  
  public static void main(String[] args) {
      javax.swing.SwingUtilities.invokeLater(new Runnable() {
          public void run() {
              makeGUI();
          }
      });
  
  }
  </code></pre>
  
  <p>}</p>