public void initComponents() {
        drumJList = new javax.swing.JList();
        
        setLayout(new BorderLayout(0, 0));

        add(drumScrollPane, BorderLayout.NORTH);
        DefaultListModel drumModel = new DefaultListModel();
        for(Object str: drumNames){
            drumModel.addElement(str);
        }
        drumJList.setModel(drumModel);

        drumJList.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent listSelectionEvent) {
                drumJListSelectionChanged(listSelectionEvent);
            }
        });
        drumJList.setSelectedIndex(-1);
        drumScrollPane.setViewportView(drumJList);

        JPanel attributesPanel = new JPanel();
        attributesPanel.setBackground(Color.WHITE);
        JScrollPane attributesPanelScrollPane = new JScrollPane();
        add(attributesPanelScrollPane, BorderLayout.CENTER);
        attributesPanel.setPreferredSize(new Dimension(700,500));
        attributesPanelScrollPane.setViewportView(attributesPanel);
        attributesPanelScrollPane.setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_ALWAYS);
        attributesPanelScrollPane.setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_ALWAYS);
        attributesPanel.setLayout(null);
        
        JLabel drumNameLabel = new JLabel("Drum Name:");
        drumNameLabel.setBounds(10, 53, 86, 14);
        attributesPanel.add(drumNameLabel);
        
        JLabel coreDiameterLabel = new JLabel("Core Diameter:");
        coreDiameterLabel.setBounds(10, 78, 86, 14);
        attributesPanel.add(coreDiameterLabel);
        
        JLabel kFactorLabel = new JLabel("K-Factor:");
        kFactorLabel.setBounds(10, 103, 117, 14);
        attributesPanel.add(kFactorLabel);
        
        JLabel cableLengthLabel = new JLabel("Cable Length:");
        cableLengthLabel.setBounds(10, 128, 140, 14);
        attributesPanel.add(cableLengthLabel);
        
        cableLengthField = new JTextField();
        cableLengthField.setBackground(Color.WHITE);
        cableLengthField.setEditable(false);
        cableLengthField.setBorder(new MatteBorder(1, 1, 1, 1, Color.WHITE));
        cableLengthField.setBounds(160, 125, 110, 20);
        attributesPanel.add(cableLengthField);
        cableLengthField.setColumns(10);
        cableLengthField.setText("No Drum Selected");
        
        kFactorField = new JTextField();
        kFactorField.setBackground(Color.WHITE);
        kFactorField.setEditable(false);
        kFactorField.setBorder(new MatteBorder(1, 1, 1, 1, Color.WHITE));
        kFactorField.setBounds(160, 100, 110, 20);
        attributesPanel.add(kFactorField);
        kFactorField.setColumns(10);
        kFactorField.setText("No Drum Selected");
        
        coreDiameterField = new JTextField();
        coreDiameterField.setBackground(Color.WHITE);
        coreDiameterField.setEditable(false);
        coreDiameterField.setBorder(new MatteBorder(1, 1, 1, 1, Color.WHITE));
        coreDiameterField.setBounds(160, 75, 110, 20);
        attributesPanel.add(coreDiameterField);
        coreDiameterField.setColumns(10);
        coreDiameterField.setText("No Drum Selected");
        
        drumNameField = new JTextField();
        drumNameField.setBackground(Color.WHITE);
        drumNameField.setEditable(false);
        drumNameField.setBorder(new MatteBorder(1, 1, 1, 1, Color.WHITE));
        drumNameField.setBounds(160, 50, 110, 20);
        attributesPanel.add(drumNameField);
        drumNameField.setColumns(10);
        drumNameField.setText("No Drum Selected");
        
        DrumLabel = new JLabel("Drum");
        DrumLabel.setFont(new Font("Tahoma", Font.PLAIN, 24));
        DrumLabel.setBounds(10, 20, 86, 31);
        attributesPanel.add(DrumLabel);
        
        cableLengthUnits.setBounds(280, 128, 46, 14);
        attributesPanel.add(cableLengthUnits);
        
        JLabel numLaunchesLabel = new JLabel("Number of Launches:");
        numLaunchesLabel.setBounds(10, 156, 140, 14);
        attributesPanel.add(numLaunchesLabel);
        
        numLaunchesField = new JTextField();
        numLaunchesField.setText("No Drum Selected");
        numLaunchesField.setEditable(false);
        numLaunchesField.setColumns(10);
        numLaunchesField.setBorder(new MatteBorder(1, 1, 1, 1, Color.WHITE));
        numLaunchesField.setBackground(Color.WHITE);
        numLaunchesField.setBounds(160, 153, 110, 20);
        attributesPanel.add(numLaunchesField);
        
        JLabel attachedParachuteLabel = new JLabel("Attached Parachute:");
        attachedParachuteLabel.setBounds(10, 184, 140, 14);
        attributesPanel.add(attachedParachuteLabel);
        
        //attachedParachuteField = new JTextField();
        attachedParachuteField = new JComboBox();
        attachedParachuteField.addItem("No Drum Selected");
        attachedParachuteField.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                if (e.getStateChange() == ItemEvent.SELECTED) {
                    JComboBox cb = (JComboBox)e.getSource();
                    try 
                    {
                        Parachute para = (Parachute)cb.getSelectedItem();
                        String driveName = CurrentDataObjectSet.getCurrentDataObjectSet().getCurrentDrum().getDrive().getName();
                        for(Drum d : CurrentDataObjectSet.getCurrentDataObjectSet().getCurrentWinch().getDrumsForDrive(driveName))
                        {
                            if(d.getName().equals(CurrentDataObjectSet.getCurrentDataObjectSet().getCurrentDrum().getName()))
                            {
                                d.setParachute(para);
                            }
                        }
                        //update();
                    }
                    catch (ClassCastException cce)
                    {   
                        if(CurrentDataObjectSet.getCurrentDataObjectSet().getCurrentDrum() != null)
                        {
                            String driveName = CurrentDataObjectSet.getCurrentDataObjectSet().getCurrentDrum().getDrive().getName();
                            for(Drum d : CurrentDataObjectSet.getCurrentDataObjectSet().getCurrentWinch().getDrumsForDrive(driveName))
                            {
                                if(d.getName().equals(CurrentDataObjectSet.getCurrentDataObjectSet().getCurrentDrum().getName()))
                                {
                                    d.clearParachute();
                                }
                            }
                        }
                    }
                }
            }
        });  
        //loadParachutesFromWinch();
        //attachedParachuteField.setText("No Drum Selected");
        attachedParachuteField.setEditable(false);
        //attachedParachuteField.setColumns(10);
        attachedParachuteField.setBorder(new MatteBorder(1, 1, 1, 1, Color.WHITE));
        attachedParachuteField.setBackground(Color.WHITE);
        attachedParachuteField.setBounds(160, 181, 110, 20);
        attributesPanel.add(attachedParachuteField);
        
        coreDiameterUnits.setBounds(280, 78, 46, 14);
        attributesPanel.add(coreDiameterUnits);
    }