Class 2 | Intermediate Java 30-IT-397 |
Jukebox Original Source
/*
* Jukebox.java
*
* Created on February 23, 2002, 3:14 PM
*/
package PA2;
import java.util.*;
/**
*
* @author default
*/
public class Jukebox extends javax.swing.JFrame {
Song song;
ArrayList songs = new ArrayList();
/** Creates new form Jukebox */
public Jukebox() {
initComponents();
}
/** This method is called from within the constructor
to
* initialize the form.
* WARNING: Do NOT modify this code. The
content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
grpTypes = new javax.swing.ButtonGroup();
centerPanel = new javax.swing.JPanel();
innerCenterPanel = new
javax.swing.JPanel();
pnlSongInfo = new javax.swing.JPanel();
lblSongTitle = new javax.swing.JLabel();
txtTitle = new javax.swing.JTextField();
lblArtist = new javax.swing.JLabel();
txtArtist = new javax.swing.JTextField();
lblAlbum = new javax.swing.JLabel();
txtAlbum = new javax.swing.JTextField();
lblType = new javax.swing.JLabel();
pnlSongTypes = new javax.swing.JPanel();
rdoDisco = new javax.swing.JRadioButton();
rdoPop = new javax.swing.JRadioButton();
rdoClassic = new javax.swing.JRadioButton();
pnlList = new javax.swing.JPanel();
pnlAdd = new javax.swing.JPanel();
Add = new javax.swing.JButton();
txtSongList = new javax.swing.JTextArea();
northPanel = new javax.swing.JPanel();
lblTitle = new javax.swing.JLabel();
southPanel = new javax.swing.JPanel();
btnRandom = new javax.swing.JButton();
lblCurrent = new javax.swing.JLabel();
addWindowListener(new
java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
centerPanel.setLayout(new java.awt.GridLayout(1, 1));
innerCenterPanel.setLayout(new java.awt.GridLayout(2, 1));
pnlSongInfo.setLayout(new java.awt.GridLayout(1, 2, 4, 4));
lblSongTitle.setText("Song
Title");
pnlSongInfo.add(lblSongTitle);
txtTitle.setColumns(15);
pnlSongInfo.add(txtTitle);
lblArtist.setText("Artist");
pnlSongInfo.add(lblArtist);
pnlSongInfo.add(txtArtist);
lblAlbum.setText("Album");
pnlSongInfo.add(lblAlbum);
pnlSongInfo.add(txtAlbum);
lblType.setText("Type");
pnlSongInfo.add(lblType);
rdoDisco.setText("Disco");
grpTypes.add(rdoDisco);
rdoDisco.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rdoDiscoActionPerformed(evt);
}
});
pnlSongTypes.add(rdoDisco);
rdoPop.setText("Pop");
grpTypes.add(rdoPop);
rdoPop.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rdoPopActionPerformed(evt);
}
});
pnlSongTypes.add(rdoPop);
rdoClassic.setText("Classic");
grpTypes.add(rdoClassic);
rdoClassic.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rdoClassicActionPerformed(evt);
}
});
pnlSongTypes.add(rdoClassic);
pnlSongInfo.add(pnlSongTypes);
innerCenterPanel.add(pnlSongInfo);
pnlList.setLayout(new java.awt.BorderLayout());
Add.setText("Add");
Add.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addActionPerformed(evt);
}
});
pnlAdd.add(Add);
pnlList.add(pnlAdd, java.awt.BorderLayout.NORTH);
txtSongList.setColumns(30);
txtSongList.setRows(5);
pnlList.add(txtSongList,
java.awt.BorderLayout.CENTER);
innerCenterPanel.add(pnlList);
centerPanel.add(innerCenterPanel);
getContentPane().add(centerPanel, java.awt.BorderLayout.CENTER);
lblTitle.setText("My
Jukebox Thingie");
northPanel.add(lblTitle);
getContentPane().add(northPanel, java.awt.BorderLayout.NORTH);
southPanel.setLayout(new java.awt.BorderLayout());
btnRandom.setLabel("Select
Random");
btnRandom.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnRandomActionPerformed(evt);
}
});
southPanel.add(btnRandom, java.awt.BorderLayout.WEST);
lblCurrent.setText("Current
Song: None");
southPanel.add(lblCurrent,
java.awt.BorderLayout.CENTER);
getContentPane().add(southPanel, java.awt.BorderLayout.SOUTH);
pack();
}//GEN-END:initComponents
private void rdoClassicActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_rdoClassicActionPerformed
// Add your handling
code here:
song = new Classic();
}//GEN-LAST:event_rdoClassicActionPerformed
private void rdoPopActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_rdoPopActionPerformed
// Add your handling
code here:
song = new Pop();
}//GEN-LAST:event_rdoPopActionPerformed
private void rdoDiscoActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_rdoDiscoActionPerformed
// Add your handling
code here:
song = new Disco();
}//GEN-LAST:event_rdoDiscoActionPerformed
private void btnRandomActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_btnRandomActionPerformed
// Add your handling
code here:
int songNumber = (int)
(Math.random() * songs.size());
Song selectedSong =
(Song) songs.get(songNumber);
lblCurrent.setText(selectedSong.toString());
}//GEN-LAST:event_btnRandomActionPerformed
private void addActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_addActionPerformed
// Add your handling
code here:
String artist = txtArtist.getText();
String title = txtTitle.getText();
String album = txtAlbum.getText();
song.setInfo(artist,
title, album);
songs.add(song);
txtSongList.setText(txtSongList.getText()
+ song.toString() + "\n");
song = song.getNew();
txtArtist.setText("");
txtTitle.setText("");
txtAlbum.setText("");
}//GEN-LAST:event_addActionPerformed
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent
evt) {//GEN-FIRST:event_exitForm
System.exit(0);
}//GEN-LAST:event_exitForm
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new Jukebox().show();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JRadioButton rdoDisco;
private javax.swing.JPanel pnlList;
private javax.swing.JTextField txtAlbum;
private javax.swing.JLabel lblArtist;
private javax.swing.JButton btnRandom;
private javax.swing.JLabel lblAlbum;
private javax.swing.JPanel centerPanel;
private javax.swing.JTextArea txtSongList;
private javax.swing.JTextField txtArtist;
private javax.swing.JPanel innerCenterPanel;
private javax.swing.JTextField txtTitle;
private javax.swing.JPanel northPanel;
private javax.swing.JLabel lblTitle;
private javax.swing.JPanel pnlSongInfo;
private javax.swing.JRadioButton rdoClassic;
private javax.swing.ButtonGroup grpTypes;
private javax.swing.JPanel pnlAdd;
private javax.swing.JButton Add;
private javax.swing.JLabel lblCurrent;
private javax.swing.JPanel southPanel;
private javax.swing.JPanel pnlSongTypes;
private javax.swing.JLabel lblSongTitle;
private javax.swing.JLabel lblType;
private javax.swing.JRadioButton rdoPop;
// End of variables declaration//GEN-END:variables
}
/*
* Song.java
*
* Created on February 23, 2002, 4:17
PM
*/
package PA2;
/**
*
* @author default
*/
public abstract class Song {
public String TYPE;
private String title;
private String album;
private String artist;
/** Creates a new instance
of Song */
public Song() {
}
public String toString()
{
return TYPE + "\t" + title + "\t" + artist + "\t" + album;
}
public void setArtist(String
artist) {
this.artist = artist;
}
public void setTitle(String
title) {
this.title = title;
}
public void setAlbum(String
album) {
this.album = album;
}
public void setInfo(String
artist, String title, String album) {
this.artist = artist;
this.album = album;
this.title = title;
}
public abstract Song getNew();
}
/*
* Pop.java
*
* Created on February 23, 2002, 4:24
PM
*/
package PA2;
/**
*
* @author default
*/
public class Pop extends Song {
/** Creates a new instance
of Pop */
public Pop() {
TYPE = "Pop";
}
public Song getNew() {
return new Pop();
}
}
/*
* Disco.java
*
* Created on February 23, 2002, 4:20
PM
*/
package PA2;
/**
*
* @author default
*/
public class Disco extends Song {
/** Creates a new instance
of Disco */
public Disco() {
TYPE = "Disco";
}
public Song getNew() {
return new Disco();
}
}
/*
* Classic.java
*
* Created on February 23, 2002, 4:28
PM
*/
package PA2;
/**
*
* @author default
*/
public class Classic extends Song {
/** Creates a new instance
of Classic */
public Classic() {
TYPE = "Classic";
}
public Song getNew() {
return new Classic();
}
}
Created by: Brandan Jones December 17, 2001