Sorry it's so much.
package MusicMan;
public class Start extends javax.swing.JFrame
{
Action ac = new Action(); //the Action class has all of the important methods
public Start()
{
initComponents();
}//dc
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
btnImport = new javax.swing.JButton();
btnPlaylist = new javax.swing.JButton();
labelOutput = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
list = new javax.swing.JList(ac.displayLists());
labelPlaylists = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
output = new javax.swing.JList();
btnEdit = new javax.swing.JButton();
browse = new javax.swing.JButton();
btnManual = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBounds(new java.awt.Rectangle(10, 10, 10, 10));
setMaximizedBounds(new java.awt.Rectangle(0, 1, 0, 1));
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, btnImport, org.jdesktop.beansbinding.ELProperty.create("MusicMan"), this, org.jdesktop.beansbinding.BeanProperty.create("title"));
bindingGroup.addBinding(binding);
btnImport.setText("Import Songs");
btnImport.setToolTipText("Import songs from a text file");
btnImport.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnImportActionPerformed(evt);
}
});
btnPlaylist.setText("Add Playlist");
btnPlaylist.setToolTipText("Select songs first");
btnPlaylist.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnPlaylistActionPerformed(evt);
}
});
labelOutput.setFont(new java.awt.Font("Courier New", 0, 12));
labelOutput.setLabelFor(output);
labelOutput.setText("Name | Artist | Album | Date Added ");
labelOutput.setBorder(javax.swing.BorderFactory.createEtchedBorder());
list.setFont(new java.awt.Font("Courier New", 0, 12));
list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
list.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
listMouseClicked(evt);
}
});
jScrollPane2.setViewportView(list);
labelPlaylists.setLabelFor(list);
labelPlaylists.setText("Playlists");
labelPlaylists.setBorder(javax.swing.BorderFactory.createEtchedBorder());
output.setFont(new java.awt.Font("Courier New", 0, 12));
jScrollPane1.setViewportView(output);
btnEdit.setText("Edit Song Info");
btnEdit.setToolTipText("Select songs first");
btnEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEditActionPerformed(evt);
}
});
browse.setText("Import iTunes Playlist");
browse.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
browseActionPerformed(evt);
}
});
btnManual.setText("Manual Song Add");
btnManual.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnManualActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(labelPlaylists, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 111, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(labelOutput, javax.swing.GroupLayout.DEFAULT_SIZE, 1044, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1052, Short.MAX_VALUE)))
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addComponent(browse)
.addGap(18, 18, 18)
.addComponent(btnManual)
.addGap(18, 18, 18)
.addComponent(btnPlaylist)
.addGap(18, 18, 18)
.addComponent(btnEdit)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 421, Short.MAX_VALUE)
.addComponent(btnImport)
.addGap(173, 173, 173))))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(browse)
.addComponent(btnPlaylist)
.addComponent(btnEdit)
.addComponent(btnManual)
.addComponent(btnImport))
.addGap(37, 37, 37)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelPlaylists)
.addComponent(labelOutput))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 313, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(390, 390, 390))
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 692, Short.MAX_VALUE)
.addContainerGap())))
);
bindingGroup.bind();
pack();
}// </editor-fold>//GEN-END:initComponents
private void btnImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImportActionPerformed
ac.addMusicFromText("songs.txt");
output.setListData(ac.showMusic(0));
}//GEN-LAST:event_btnImportActionPerformed
private void btnPlaylistActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPlaylistActionPerformed
output.setListData(ac.showMusic(ac.addPlaylist(output.getSelectedIndices())));
list.setListData(ac.displayLists());
}//GEN-LAST:event_btnPlaylistActionPerformed
private void listMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_listMouseClicked
output.setListData(ac.showMusic(list.getSelectedIndex()));
}//GEN-LAST:event_listMouseClicked
private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEditActionPerformed
ac.edit(output.getSelectedIndex());
output.setListData(ac.showMusic(0));
}//GEN-LAST:event_btnEditActionPerformed
private void browseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseActionPerformed
Browse br = new Browse();
br.browser.showOpenDialog(null);
ac.addMusicFromText(br.browser.getName(br.browser.getSelectedFile()));
output.setListData(ac.showMusic(0));
}//GEN-LAST:event_browseActionPerformed
private void btnManualActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnManualActionPerformed
SongEntry se = new SongEntry(new Start(), true);
se.setVisible(true);
ac.addMusic(se.nameEntry.getText(), se.artistEntry.getText(), se.albumEntry.getText());
output.setListData(ac.showMusic(0));
}//GEN-LAST:event_btnManualActionPerformed
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new Start().setVisible(true);
}
});
}//main
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton browse;
private javax.swing.JButton btnEdit;
private javax.swing.JButton btnImport;
private javax.swing.JButton btnManual;
private javax.swing.JButton btnPlaylist;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JLabel labelOutput;
private javax.swing.JLabel labelPlaylists;
private javax.swing.JList list;
javax.swing.JList output;
private org.jdesktop.beansbinding.BindingGroup bindingGroup;
// End of variables declaration//GEN-END:variables
}
package MusicMan;
public class Browse extends javax.swing.JInternalFrame {
public Browse() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
browser = new javax.swing.JFileChooser();
browser.setFileHidingEnabled(false);
browser.setDragEnabled(true);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(browser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(browser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(19, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
public javax.swing.JFileChooser browser;
// End of variables declaration//GEN-END:variables
}