Initial Commit
This commit is contained in:
6
Java/Vehicle Exception Project/.classpath
Normal file
6
Java/Vehicle Exception Project/.classpath
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
17
Java/Vehicle Exception Project/.project
Normal file
17
Java/Vehicle Exception Project/.project
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Vehicle Exception Project</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,12 @@
|
||||
#Fri Dec 10 14:42:44 EST 2010
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
19
Java/Vehicle Exception Project/Vehicles
Normal file
19
Java/Vehicle Exception Project/Vehicles
Normal file
@@ -0,0 +1,19 @@
|
||||
#Comments begin with #
|
||||
#the following format will be used
|
||||
#model make year horsepower capacity
|
||||
truck jeep 140 240 2400
|
||||
bus dodge 2007 500 40
|
||||
truck dodge 910 240 2400
|
||||
bus poop 2007 500 50
|
||||
truck jeep 10 240 2400
|
||||
bus poop 2007 500 50
|
||||
truck jeep 190 240 2400
|
||||
bus vw 2007 500 50
|
||||
truck jeep 10 240 2400
|
||||
bus ford 2007 500 50
|
||||
truck jeep 190 240 200
|
||||
bus poop 2007 500 50
|
||||
truck jeep 10 240 400
|
||||
bus poop 2007 500 50
|
||||
truck jeep 100 240 240
|
||||
bus vw 2007 500 50
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,102 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextArea;
|
||||
|
||||
/**
|
||||
* this class will allow the user to enter a new vehicle into the database
|
||||
*/
|
||||
public class AddVehicleDialog extends JFrame implements ActionListener{
|
||||
|
||||
private static final long serialVersionUID = 3165335189780349167L;
|
||||
private JButton ok;
|
||||
private JTextArea model;
|
||||
private JTextArea make;
|
||||
private JTextArea year;
|
||||
private JTextArea hp;
|
||||
private JTextArea cap;
|
||||
|
||||
/**
|
||||
* Creates a new AddVehicleDialog
|
||||
*/
|
||||
public AddVehicleDialog() {
|
||||
super();
|
||||
setTitle("Add Vehicle");
|
||||
setMinimumSize(new Dimension(590, 20));
|
||||
|
||||
//create a JPanel to hold the text area and button
|
||||
JPanel panel = new JPanel();
|
||||
ok = new JButton("Ok");
|
||||
ok.addActionListener(this);
|
||||
model = new JTextArea();
|
||||
model.setEditable(true);
|
||||
model.setColumns(10);
|
||||
model.setRows(1);
|
||||
|
||||
make = new JTextArea();
|
||||
make.setEditable(true);
|
||||
make.setColumns(10);
|
||||
make.setRows(1);
|
||||
|
||||
year = new JTextArea();
|
||||
year.setEditable(true);
|
||||
year.setColumns(10);
|
||||
year.setRows(1);
|
||||
|
||||
hp = new JTextArea();
|
||||
hp.setEditable(true);
|
||||
hp.setColumns(10);
|
||||
hp.setRows(1);
|
||||
|
||||
cap = new JTextArea();
|
||||
cap.setEditable(true);
|
||||
cap.setColumns(10);
|
||||
cap.setRows(1);
|
||||
|
||||
panel.add(new JLabel("Model: "));
|
||||
panel.add(model);
|
||||
panel.add(new JLabel("Make: "));
|
||||
panel.add(make);
|
||||
panel.add(new JLabel("Year: "));
|
||||
panel.add(year);
|
||||
panel.add(new JLabel("Horse Power: "));
|
||||
panel.add(hp);
|
||||
panel.add(new JLabel("Capacity: "));
|
||||
panel.add(cap);
|
||||
|
||||
panel.add(ok);
|
||||
|
||||
//add the JPanel to the frame, and display
|
||||
getContentPane().add(panel);
|
||||
pack();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* (non-Javadoc)
|
||||
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
|
||||
*/
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (e.getSource() == ok) {
|
||||
try{
|
||||
if(model.getText().equals("truck")){
|
||||
MainWindow.db.addVehicle(new Truck(make.getText(), Integer.parseInt(year.getText()), Double.parseDouble(hp.getText()), Double.parseDouble(cap.getText())));
|
||||
}
|
||||
if(model.getText().equals("bus")){
|
||||
MainWindow.db.addVehicle(new Bus(make.getText(), Integer.parseInt(year.getText()), Double.parseDouble(hp.getText()), Integer.parseInt(cap.getText())));;
|
||||
}
|
||||
setVisible(false);
|
||||
} catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/**
|
||||
* Bus class with super class
|
||||
*
|
||||
* @author Jonathan Warning
|
||||
* @version 11.01.10
|
||||
*/
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
|
||||
public class Bus extends Vehicle {
|
||||
public final int MAXPASSENGERS = 50;
|
||||
private int numOfPassengers;
|
||||
|
||||
/*
|
||||
* constructs a Bus object
|
||||
*/
|
||||
public Bus() {
|
||||
super();
|
||||
numOfPassengers = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* constructs a Bus object
|
||||
*
|
||||
* @param String aMake the make of the vehicle
|
||||
*
|
||||
* @param int aYear the year of the vehicle
|
||||
*
|
||||
* @param double aHorsepower the horsepower of the vehicle
|
||||
*
|
||||
* @param int aNumOfPassengers the number of passsengers
|
||||
*/
|
||||
public Bus(String aMake, int aYear, double aHorsepower, int aNumOfPassengers) {
|
||||
super(aMake, aYear, aHorsepower);
|
||||
if (aNumOfPassengers > MAXPASSENGERS)
|
||||
throw new OverloadedBusException(
|
||||
"Number of passengers cannot exceed " + MAXPASSENGERS);
|
||||
else if (aNumOfPassengers < 0)
|
||||
throw new NegativeBusPassengerException(
|
||||
"Number of passegers cannot be less than 0.");
|
||||
else
|
||||
numOfPassengers = aNumOfPassengers;
|
||||
}
|
||||
|
||||
/*
|
||||
* sets the number of passengers on the Bus
|
||||
*
|
||||
* @param int numOfPassengers the number of passengers on the Bus
|
||||
*/
|
||||
public void setPassengers(int aNumOfPassengers) {
|
||||
if (aNumOfPassengers > MAXPASSENGERS)
|
||||
throw new OverloadedBusException(
|
||||
"Number of passengers cannot exceed " + MAXPASSENGERS);
|
||||
else if (aNumOfPassengers < 0)
|
||||
throw new NegativeBusPassengerException(
|
||||
"Number of passegers cannot be less than 0.");
|
||||
else
|
||||
numOfPassengers = aNumOfPassengers;
|
||||
}
|
||||
|
||||
/*
|
||||
* gets the number of passengers on the Bus
|
||||
*
|
||||
* @return int numOfPassengers the number of passengers on the Bus
|
||||
*/
|
||||
public int getPassengers() {
|
||||
return numOfPassengers;
|
||||
}
|
||||
|
||||
/*
|
||||
* calculates miles per gallon
|
||||
*
|
||||
* @return double milesPerGal the miles per gallon of the Bus
|
||||
*/
|
||||
public double calculateMPG() {
|
||||
return milesPerGal = 10000 / numOfPassengers / horsepower;
|
||||
}
|
||||
|
||||
/*
|
||||
* String with all of the parameters of the Bus
|
||||
*
|
||||
* @return int year year of the Bus
|
||||
*
|
||||
* @return String make make of the Bus
|
||||
*
|
||||
* @return double horsepower horsepower of the Bus
|
||||
*
|
||||
* @return int numOfPassengers number of passengers in Bus
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return "The " + super.year + ", " + super.horsepower + " horsepower "
|
||||
+ super.make + " is carrying " + numOfPassengers + " people.";
|
||||
}
|
||||
|
||||
/*
|
||||
* Compares two Busses number of passengers
|
||||
*
|
||||
* @return boolean are the busses number of passengers equal
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object otherObj) {
|
||||
if (otherObj instanceof Bus) {
|
||||
Bus otherBus = (Bus) otherObj;
|
||||
return (numOfPassengers == otherBus.numOfPassengers);
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
public class InvalidHorsepowerException extends RuntimeException {
|
||||
|
||||
private static final long serialVersionUID = -3775197702871511450L;
|
||||
|
||||
public InvalidHorsepowerException() {
|
||||
|
||||
}
|
||||
|
||||
public InvalidHorsepowerException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
public class InvalidMakeException extends RuntimeException {
|
||||
|
||||
private static final long serialVersionUID = -7536710583729590772L;
|
||||
|
||||
public InvalidMakeException() {
|
||||
|
||||
}
|
||||
|
||||
public InvalidMakeException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
public class InvalidTowingCapacityException extends RuntimeException {
|
||||
|
||||
private static final long serialVersionUID = -3525837906090455018L;
|
||||
|
||||
public InvalidTowingCapacityException() {
|
||||
|
||||
}
|
||||
|
||||
public InvalidTowingCapacityException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
public class InvalidYearException extends RuntimeException {
|
||||
|
||||
private static final long serialVersionUID = 7185150702544438062L;
|
||||
|
||||
public InvalidYearException() {
|
||||
|
||||
}
|
||||
|
||||
public InvalidYearException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
/**
|
||||
* this is the main window and class of this application
|
||||
*/
|
||||
public class MainWindow extends JFrame implements ActionListener{
|
||||
|
||||
private JButton search;
|
||||
private JButton addVehicle;
|
||||
private JButton addFromFile;
|
||||
private JButton removeVehicle;
|
||||
private JButton showAllVehicles;
|
||||
private JFileChooser fc;
|
||||
public static VehicleDB db;
|
||||
|
||||
/**
|
||||
* Generated Serial Version ID
|
||||
*/
|
||||
private static final long serialVersionUID = 1841715561053331517L;
|
||||
|
||||
public MainWindow() {
|
||||
setTitle("Vehicle Database");
|
||||
JPanel panel = new JPanel();
|
||||
search = new JButton("Search");
|
||||
addVehicle = new JButton("Add Vehicle");
|
||||
addFromFile = new JButton("Add From File");
|
||||
removeVehicle = new JButton("Remove Vehicle");
|
||||
showAllVehicles = new JButton("Show All Vehicles");
|
||||
|
||||
search.addActionListener(this);
|
||||
addVehicle.addActionListener(this);
|
||||
addFromFile.addActionListener(this);
|
||||
removeVehicle.addActionListener(this);
|
||||
showAllVehicles.addActionListener(this);
|
||||
|
||||
panel.add(search);
|
||||
panel.add(addVehicle);
|
||||
panel.add(addFromFile);
|
||||
panel.add(removeVehicle);
|
||||
panel.add(showAllVehicles);
|
||||
|
||||
add(panel);
|
||||
setVisible(true);
|
||||
this.setMinimumSize(new Dimension(680,70));
|
||||
|
||||
fc = new JFileChooser();
|
||||
|
||||
fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
|
||||
|
||||
db = new VehicleDB();
|
||||
}
|
||||
|
||||
/**
|
||||
* main method, called when the application starts
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args){
|
||||
new MainWindow();
|
||||
}
|
||||
|
||||
/**
|
||||
* called when a button is clicked
|
||||
* (non-Javadoc)
|
||||
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
|
||||
*/
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (e.getSource() == search) {
|
||||
new ShowAllMakeDialog();
|
||||
}
|
||||
if (e.getSource() == addVehicle) {
|
||||
new AddVehicleDialog();
|
||||
}
|
||||
if (e.getSource() == addFromFile) {
|
||||
if(fc.showOpenDialog(MainWindow.this) == JFileChooser.APPROVE_OPTION){
|
||||
db.processFile(fc.getSelectedFile());
|
||||
}
|
||||
}
|
||||
if (e.getSource() == removeVehicle) {
|
||||
new RemoveVehicleDialog();
|
||||
}
|
||||
if (e.getSource() == showAllVehicles) {
|
||||
new ShowAllDialog(db.toString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
public class NegativeBusPassengerException extends RuntimeException {
|
||||
|
||||
private static final long serialVersionUID = 2864975327138368535L;
|
||||
|
||||
public NegativeBusPassengerException() {
|
||||
|
||||
}
|
||||
|
||||
public NegativeBusPassengerException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
public class OverloadedBusException extends RuntimeException {
|
||||
|
||||
private static final long serialVersionUID = -1979540068583138964L;
|
||||
|
||||
public OverloadedBusException() {
|
||||
|
||||
}
|
||||
|
||||
public OverloadedBusException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextArea;
|
||||
|
||||
/**
|
||||
* This class will be the delete vehicle dialog
|
||||
*/
|
||||
public class RemoveVehicleDialog extends JFrame implements ActionListener {
|
||||
|
||||
private static final long serialVersionUID = -36245710370532319L;
|
||||
private JButton ok;
|
||||
private JTextArea editText;
|
||||
|
||||
/**
|
||||
* Creates a new RemoveVehicleDialog
|
||||
*/
|
||||
public RemoveVehicleDialog(){
|
||||
super();
|
||||
setTitle("Delete Vehicles");
|
||||
setMinimumSize(new Dimension(590, 20));
|
||||
|
||||
//create a JPanel to hold the text area and button
|
||||
JPanel panel = new JPanel();
|
||||
ok = new JButton("Ok");
|
||||
editText = new JTextArea();
|
||||
JLabel label = new JLabel("Enter Vehicle Make To Remove");
|
||||
ok.addActionListener(this);
|
||||
editText.setEditable(true);
|
||||
editText.setColumns(25);
|
||||
editText.setRows(1);
|
||||
|
||||
panel.add(label);
|
||||
panel.add(editText);
|
||||
panel.add(ok);
|
||||
|
||||
//add the JPanel to the frame, and display
|
||||
getContentPane().add(panel);
|
||||
pack();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* (non-Javadoc)
|
||||
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
|
||||
*/
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (e.getSource() == ok) {
|
||||
MainWindow.db.deleteVehicle(editText.getText());
|
||||
setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextArea;
|
||||
|
||||
/**
|
||||
* This panel will be used to display all Vehicles in the VechicleDB
|
||||
*/
|
||||
public class ShowAllDialog extends JFrame {
|
||||
|
||||
private static final long serialVersionUID = -8416144493079733535L;
|
||||
private JButton ok;
|
||||
private JTextArea results;
|
||||
|
||||
/**
|
||||
* Creates a new ShowAllDialog
|
||||
*/
|
||||
public ShowAllDialog(String list){
|
||||
super();
|
||||
setTitle("Show All Vehicles");
|
||||
setMinimumSize(new Dimension(590, 460));
|
||||
|
||||
//create a JPanel to hold the text area and button
|
||||
JPanel panel = new JPanel();
|
||||
ok = new JButton("Ok");
|
||||
results = new JTextArea();
|
||||
ButtonListener listener = new ButtonListener();
|
||||
ok.addActionListener(listener);
|
||||
results.setEditable(false);
|
||||
results.setText(list);
|
||||
results.setColumns(50);
|
||||
results.setRows(25);
|
||||
JScrollPane scrollPane = new JScrollPane(results);
|
||||
setPreferredSize(new Dimension(450, 110));
|
||||
add(scrollPane, BorderLayout.CENTER);
|
||||
panel.add(scrollPane);
|
||||
panel.add(ok);
|
||||
|
||||
//add the JPanel to the frame, and display
|
||||
getContentPane().add(panel);
|
||||
pack();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Listener class for this JPanel
|
||||
*/
|
||||
private class ButtonListener implements ActionListener {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ShowAllDialog.this.setVisible(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextArea;
|
||||
|
||||
/**
|
||||
* This class will be the dialog that will ask the user for a specific make to show
|
||||
*/
|
||||
public class ShowAllMakeDialog extends JFrame implements ActionListener {
|
||||
|
||||
private static final long serialVersionUID = 1750326106927701404L;
|
||||
private JButton ok;
|
||||
private JTextArea editText;
|
||||
|
||||
/**
|
||||
* Creates a new ShowAllMakeDialog
|
||||
*/
|
||||
public ShowAllMakeDialog() {
|
||||
super();
|
||||
setTitle("Search");
|
||||
setMinimumSize(new Dimension(590, 20));
|
||||
|
||||
//create a JPanel to hold the text area and button
|
||||
JPanel panel = new JPanel();
|
||||
ok = new JButton("Ok");
|
||||
editText = new JTextArea();
|
||||
JLabel label = new JLabel("Enter Vehicle Make To Show");
|
||||
ok.addActionListener(this);
|
||||
editText.setEditable(true);
|
||||
editText.setColumns(25);
|
||||
editText.setRows(1);
|
||||
|
||||
panel.add(label);
|
||||
panel.add(editText);
|
||||
panel.add(ok);
|
||||
|
||||
//add the JPanel to the frame, and display
|
||||
getContentPane().add(panel);
|
||||
pack();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* (non-Javadoc)
|
||||
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
|
||||
*/
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (e.getSource() == ok) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(Vehicle item : MainWindow.db.findVehicle(editText.getText()))
|
||||
sb.append(item.toString()+"\n");
|
||||
new ShowAllDialog(sb.toString());
|
||||
setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
import java.awt.EventQueue;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public class Test {
|
||||
|
||||
private JFrame frame;
|
||||
|
||||
/**
|
||||
* Launch the application.
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
Test window = new Test();
|
||||
window.frame.setVisible(true);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the application.
|
||||
*/
|
||||
public Test() {
|
||||
initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the contents of the frame.
|
||||
*/
|
||||
private void initialize() {
|
||||
frame = new JFrame();
|
||||
frame.setBounds(100, 100, 450, 300);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
/**
|
||||
* Truck class with superclass
|
||||
*
|
||||
* @author Jonathan Warning
|
||||
* @version 11.01.10
|
||||
*/
|
||||
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
|
||||
public class Truck extends Vehicle {
|
||||
public final double MINCAPACITY = 0.5;
|
||||
|
||||
private double towingCapacity;
|
||||
|
||||
/*
|
||||
* constructs a Truck object
|
||||
*/
|
||||
public Truck() {
|
||||
super();
|
||||
towingCapacity = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* constructs a Truck object
|
||||
*
|
||||
* @param String aMake the make of the vehicle
|
||||
*
|
||||
* @param int aYear the year of the vehicle
|
||||
*
|
||||
* @param double aHorsepower the horsepower of the vehicle
|
||||
*
|
||||
* @param double aTowingCapacity the towing capacity of the Truck
|
||||
*/
|
||||
public Truck(String aMake, int aYear, double aHorsepower,
|
||||
double aTowingCapacity) {
|
||||
super(aMake, aYear, aHorsepower);
|
||||
if (aTowingCapacity < MINCAPACITY)
|
||||
throw new InvalidTowingCapacityException(
|
||||
"Towing capacity cannot be less than " + MINCAPACITY);
|
||||
else
|
||||
towingCapacity = aTowingCapacity;
|
||||
}
|
||||
|
||||
/*
|
||||
* sets the towing capacity of the truck
|
||||
*
|
||||
* @param double aTowingCapacity the towing capacity of the truck
|
||||
*/
|
||||
public void setTowingCapacity(double aTowingCapacity) {
|
||||
if (aTowingCapacity < MINCAPACITY)
|
||||
throw new InvalidTowingCapacityException("Towing capacity cannot be less than " + MINCAPACITY);
|
||||
else
|
||||
towingCapacity = aTowingCapacity;
|
||||
}
|
||||
|
||||
/*
|
||||
* gets the towing capacity of the truck
|
||||
*
|
||||
* @return double aTowingCapacity the towing capacity of the Truck
|
||||
*/
|
||||
public double getTowingCapacity() {
|
||||
return towingCapacity;
|
||||
}
|
||||
|
||||
/*
|
||||
* calculates miles per gallon
|
||||
*
|
||||
* @return double milesPerGal the miles per gallon of the Truck
|
||||
*/
|
||||
public double calculateMPG() {
|
||||
return milesPerGal = 5000 / towingCapacity / horsepower;
|
||||
}
|
||||
|
||||
/*
|
||||
* String with all of the parameters of the Truck
|
||||
*
|
||||
* @return int year year of the Truck
|
||||
*
|
||||
* @return String make make of the Truck
|
||||
*
|
||||
* @return double horsepower horsepower of the Truck
|
||||
*
|
||||
* @return double towingCapacity the towing capactiy of the truck
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return "The towing capacity of the " + super.year + ", "
|
||||
+ super.horsepower + " horsepower " + super.make + " is "
|
||||
+ towingCapacity + " tons.";
|
||||
}
|
||||
|
||||
/*
|
||||
* Compares two trucks towing capacities
|
||||
*
|
||||
* @return boolean are the trucks towing capacities equal
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object otherObj) {
|
||||
if (otherObj instanceof Truck) {
|
||||
Truck otherTruck = (Truck) otherObj;
|
||||
return ((towingCapacity == otherTruck.towingCapacity));
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
/**
|
||||
* Vehicle class with subclasses
|
||||
*
|
||||
* @author Jonathan Warning
|
||||
* @version 10.20.10
|
||||
*/
|
||||
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
|
||||
public abstract class Vehicle implements Cloneable, Comparable<Vehicle> {
|
||||
protected String make;
|
||||
protected int year;
|
||||
protected double horsepower;
|
||||
protected double milesPerGal;
|
||||
|
||||
/*
|
||||
* constructs a vehicle object
|
||||
*/
|
||||
public Vehicle() {
|
||||
make = "";
|
||||
year = 0;
|
||||
horsepower = 0;
|
||||
|
||||
if (make.length() == 0)
|
||||
throw new InvalidMakeException("Vehicle must parameters.");
|
||||
if (year <= 0)
|
||||
throw new InvalidYearException("Vehicle must parameters.");
|
||||
if (horsepower <= 0)
|
||||
throw new InvalidHorsepowerException("Vehicle must parameters.");
|
||||
}
|
||||
|
||||
/*
|
||||
* constructs a vehicle object
|
||||
*
|
||||
* @param String aMake the make of the vehicle
|
||||
*
|
||||
* @param int aYear the year of the vehicle
|
||||
*
|
||||
* @param double aHorsepower the horsepower of the vehicle
|
||||
*/
|
||||
public Vehicle(String aMake, int aYear, double aHorsepower) {
|
||||
if (aMake.length() == 0)
|
||||
throw new InvalidMakeException("Vehicle must have a make.");
|
||||
else
|
||||
make = aMake;
|
||||
|
||||
if (aYear <= 0)
|
||||
throw new InvalidYearException("Vehicle must have been made A.D.");
|
||||
else
|
||||
year = aYear;
|
||||
|
||||
if (aHorsepower <= 0)
|
||||
throw new InvalidHorsepowerException(
|
||||
"Vehicle must have positive horsepower.");
|
||||
else
|
||||
horsepower = aHorsepower;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the make of the vehicle
|
||||
*
|
||||
* @param String aMake the make of the vehicle
|
||||
*/
|
||||
public void setMake(String aMake) {
|
||||
if (aMake.length() == 0)// (aMake.equalsIgnoreCase(""))
|
||||
throw new InvalidMakeException("Vehicle must have a make.");
|
||||
else
|
||||
make = aMake;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the year of the vehicle
|
||||
*
|
||||
* @param int aYear the year of the vehicle
|
||||
*/
|
||||
public void setYear(int aYear) {
|
||||
if (aYear <= 0)
|
||||
throw new InvalidYearException("Vehicle must have been made A.D.");
|
||||
else
|
||||
year = aYear;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the horsepowers of the vehicle
|
||||
*
|
||||
* @param double aHorsepower the horsepower of the vehicle
|
||||
*/
|
||||
public void setHorsepower(double aHorsepower) {
|
||||
if (aHorsepower <= 0)
|
||||
throw new InvalidHorsepowerException(
|
||||
"Vehicle must have positive horsepower.");
|
||||
else
|
||||
horsepower = aHorsepower;
|
||||
}
|
||||
|
||||
/*
|
||||
* gets the make of the vehicle
|
||||
*
|
||||
* @return String make the make of the vehicle
|
||||
*/
|
||||
public String getMake() {
|
||||
return make;
|
||||
}
|
||||
|
||||
/*
|
||||
* gets the year of the vehicle
|
||||
*
|
||||
* @return int year the year of the vehicle
|
||||
*/
|
||||
public int getYear() {
|
||||
return year;
|
||||
}
|
||||
|
||||
/*
|
||||
* gets the horsepower of the vehicle
|
||||
*
|
||||
* @return double horsepower the horsepower of the vehicle
|
||||
*/
|
||||
public double getHorsepower() {
|
||||
return horsepower;
|
||||
}
|
||||
|
||||
/*
|
||||
* abstract method to calculate MPG classes that implement Vehicle must the
|
||||
* calculateMPG method
|
||||
*/
|
||||
public abstract double calculateMPG();
|
||||
|
||||
/*
|
||||
* String with all of the parameters of the class
|
||||
*
|
||||
* @return int year year of the Vehicle
|
||||
*
|
||||
* @return String make make of the Vehicle
|
||||
*
|
||||
* @return double horsepower horsepower of the Vehicle
|
||||
*/
|
||||
public String toString() {
|
||||
return "The " + year + " " + make + " has " + horsepower + " hp.";
|
||||
}
|
||||
|
||||
/*
|
||||
* Compares two Vehicles milesPerGal
|
||||
*
|
||||
* @return boolean are the objects milesPerGal equal
|
||||
*/
|
||||
public boolean equals(Object otherObj) {
|
||||
Vehicle otherVehicle = (Vehicle) otherObj;
|
||||
return (this.milesPerGal == otherVehicle.milesPerGal);
|
||||
}
|
||||
|
||||
/*
|
||||
* makes a deep copy of a Vehicle object
|
||||
*
|
||||
* @return Object a deep copy of the object
|
||||
*/
|
||||
@Override
|
||||
public Object clone() throws CloneNotSupportedException {
|
||||
try {
|
||||
return super.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* compares vehicle by make
|
||||
* (non-Javadoc)
|
||||
* @see java.lang.Comparable#compareTo(java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public int compareTo(Vehicle vehicle){
|
||||
return this.make.compareTo( vehicle.make );
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.VehicleExcetionProject;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
* This class will be a vehicle database
|
||||
*/
|
||||
public class VehicleDB{
|
||||
|
||||
private ArrayList<Vehicle> array;
|
||||
|
||||
/**
|
||||
* Creates a new VehicleDB
|
||||
*/
|
||||
public VehicleDB(){
|
||||
array = new ArrayList<Vehicle>(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a human readable string
|
||||
* (non-Javadoc)
|
||||
* @see java.lang.Object#toString()
|
||||
*/
|
||||
@Override
|
||||
public String toString(){
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for(Vehicle item : array)
|
||||
sb.append(item.toString() +"\n");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* added the vehicle to the database
|
||||
* @param aVehicle
|
||||
*/
|
||||
public void addVehicle(Vehicle aVehicle){
|
||||
array.add(aVehicle);
|
||||
Collections.sort(array);
|
||||
}
|
||||
|
||||
/**
|
||||
* finds the all occurrences of a vehicle with the make
|
||||
* @param make
|
||||
* @return ta list containing all the vehicles with the provided make
|
||||
*/
|
||||
public ArrayList<Vehicle> findVehicle(String make){
|
||||
ArrayList<Vehicle> temp = new ArrayList<Vehicle>(0);
|
||||
for(Vehicle item : array)
|
||||
if(item.getMake().equals(make))
|
||||
temp.add(item);
|
||||
return temp;
|
||||
}
|
||||
|
||||
/**
|
||||
* removes the all occurrences of a vehicle with the make
|
||||
* @param make
|
||||
*/
|
||||
public void deleteVehicle(String make){
|
||||
Object[] temp = array.toArray();
|
||||
for(int index = 0; index < temp.length; index++)
|
||||
if(((Vehicle)temp[index]).getMake().equals(make)){
|
||||
temp[index] = null;
|
||||
}
|
||||
|
||||
array.removeAll(array);
|
||||
|
||||
for(Object item : temp)
|
||||
if(item != null)
|
||||
array.add((Vehicle)item);
|
||||
}
|
||||
|
||||
/**
|
||||
* process the file into the VehicleDB
|
||||
* @param selectedFile
|
||||
*/
|
||||
public void processFile(File selectedFile) {
|
||||
Scanner scan = null;
|
||||
try {
|
||||
scan = new Scanner(selectedFile);
|
||||
} catch (FileNotFoundException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
if(scan != null){
|
||||
String model;
|
||||
while(scan.hasNextLine()){
|
||||
model = scan.next();
|
||||
if(model.toCharArray()[0] != '#'){
|
||||
try {
|
||||
if(model.equals("truck")){
|
||||
addVehicle(new Truck(scan.next(), scan.nextInt(), scan.nextDouble(), scan.nextDouble()));
|
||||
}
|
||||
if(model.equals("bus")){
|
||||
addVehicle(new Bus(scan.next(), scan.nextInt(), scan.nextDouble(), scan.nextInt()));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user