public SimpleComputer()
    {
        clearAll = new JButton("Clear All");
        save = new JButton("Save");
        load = new JButton("Load");
        step = new JButton("Step");
        run = new JButton("Run");
        quickRef = new JButton("Quick Reference");
        memory = new RegisterBox("Memory", 100, 20, 5);
        cpu = new CPU();
        inputCards = new InputCards();
        outputCards = new RegisterBox("Output Cards", 15, 15, 0);
        north = new JPanel();
        west = new JPanel();
        southwest = new JPanel();
        
        //This block rearranges the registers in memory so that they are in
        //  descending order.
        memory.center.removeAll();
        for(int rowCount = 0; rowCount < MEM_NUM_ROWS; rowCount++)
        {
            for(int colCount = 0; colCount < MEM_NUM_COLS; colCount++)
            {
                memory.center.add
                         (memory.registers[colCount * MEM_NUM_ROWS + rowCount]);
            }
        }
        memory.registers[0].setValue(1);
        memory.registers[0].text.setEditable(false);
        
        //Renaming the output cards to start at 1 instead of 0.
        for(int count = 0; count < outputCards.registers.length; count++)
        {
            outputCards.registers[count].setLabel(count + 1);
        }
        
        clearAll.addActionListener(new ButtonListener());
        save.addActionListener(new ButtonListener());
        load.addActionListener(new ButtonListener());
        step.addActionListener(new ButtonListener());
        run.addActionListener(new ButtonListener());
        quickRef.addActionListener(new ButtonListener());
        
        southwest.setLayout(new GridLayout(1, 2));
        southwest.add(inputCards);
        southwest.add(outputCards);
        west.setLayout(new BorderLayout());
        west.add(cpu, BorderLayout.NORTH);
        west.add(southwest, BorderLayout.SOUTH);
        north.setLayout(new GridLayout(2, 0));
        north.add(clearAll);
        north.add(save);
        north.add(load);
        north.add(step);
        north.add(run);
        north.add(quickRef, BorderLayout.SOUTH);
        setLayout(new BorderLayout());
        add(north, BorderLayout.NORTH);
        add(west, BorderLayout.WEST);
        add(memory, BorderLayout.EAST);
        
        setTitle("Simple Computer");
        setSize(700, 900);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }