import java.util.*;
import java.awt.*;
import javax.swing.*;
public class RecipeBrowser extends JFrame {

     public RecipeBrowser(String name) {
          super(name);
          
          GridBagLayout layout = new GridBagLayout();
          GridBagConstraints constraints = new GridBagConstraints();
          setLayout(layout);

          JLabel label = new JLabel("Categories");
          constraints.gridx = 0;
          constraints.gridy = 0;
          constraints.gridwidth = 1;
          constraints.gridheight = 1;
          constraints.weightx = 0; // don't grow horizontally
          constraints.weighty = 0; // don't grow vertically
          constraints.anchor = GridBagConstraints.WEST;
          constraints.insets = new Insets(10, 10, 0, 0);
          layout.setConstraints(label, constraints);
          add(label);
          

          label = new JLabel("Recipes");
          constraints.gridx = 1;
          constraints.gridy = 0;
          constraints.gridwidth = 1;
          constraints.gridheight = 1;
          constraints.weightx = 0; // don't grow horizontally
          constraints.weighty = 0; // don't grow vertically
          constraints.insets = new Insets(10, 10, 0, 0);
          layout.setConstraints(label, constraints);
          constraints.anchor = GridBagConstraints.WEST;
          add(label);


          JList categories = new JList();
          categories.setPrototypeCellValue("xxxxxxxxxxx");
          JScrollPane scrollPane = new JScrollPane(categories,
              ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
              ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
          constraints.gridx = 0;
          constraints.gridy = 1;
          constraints.gridwidth = 1;
          constraints.gridheight = 1;
          constraints.fill = GridBagConstraints.BOTH;
          constraints.weightx = 2;
          constraints.weighty = 2;
          constraints.insets = new Insets(10, 10, 0, 0);
          layout.setConstraints(scrollPane, constraints);
          add(scrollPane);


          JList recipes = new JList();
          recipes.setPrototypeCellValue("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
          scrollPane = new JScrollPane(recipes,
              ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
              ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
          constraints.gridx = 1;
          constraints.gridy = 1;
          constraints.gridwidth = 1;
          constraints.gridheight = 1;
          constraints.fill = GridBagConstraints.BOTH;
          constraints.weightx = 1;
          constraints.weighty = 2;
          constraints.insets = new Insets(10, 10, 0, 10);
          layout.setConstraints(scrollPane, constraints);
          add(scrollPane);


          label = new JLabel("Ingredients");
          constraints.gridx = 0;
          constraints.gridy = 2;
          constraints.gridwidth = 1;
          constraints.gridheight = 1;
          constraints.weightx = 0; // don't grow horizontally
          constraints.weighty = 0; // don't grow vertically
          constraints.insets = new Insets(10, 10, 0, 0);
          layout.setConstraints(label, constraints);
          add(label);


          JTextArea ingredients = new JTextArea();
          scrollPane = new JScrollPane(ingredients,
              ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
              ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
          constraints.gridx = 0;
          constraints.gridy = 3;
          constraints.gridwidth = 2;
          constraints.gridheight = 1;
          constraints.fill = GridBagConstraints.BOTH;
          constraints.weightx = 1;
          constraints.weighty = 3;
          constraints.insets = new Insets(10, 10, 0, 10);
          layout.setConstraints(scrollPane, constraints);
          add(scrollPane);


          label = new JLabel("Directions");
          constraints.gridx = 0;
          constraints.gridy = 4;
          constraints.gridwidth = 1;
          constraints.gridheight = 1;
          constraints.weightx = 0; // don't grow horizontally
          constraints.weighty = 0; // don't grow vertically
          constraints.insets = new Insets(10, 10, 0, 0);
          layout.setConstraints(label, constraints);
          add(label);


          JTextArea directions = new JTextArea();
          scrollPane = new JScrollPane(directions,
              ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
              ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
          constraints.gridx = 0;
          constraints.gridy = 5;
          constraints.gridwidth = 2;
          constraints.gridheight = 1;
          constraints.fill = GridBagConstraints.BOTH;
          constraints.weightx = 1;
          constraints.weighty = 1;
          constraints.insets = new Insets(10, 10, 10, 10);
          layout.setConstraints(scrollPane, constraints);
          add(scrollPane);
          
          
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          setSize(300,300);
     }
     public static void main(String[] args) {
          JFrame frame = new RecipeBrowser("A La Carte");
          frame.setVisible(true);
     }
}