I have multiple classes such as customer, customers, employee, employees, product, products. The programs with 's' are main classes. I have one Main class, I want this to be the start point of the program. I'd like a switch-statement in it. I'd like to ask user for input 1-3 and then run that main class from their input. Such as if input is 1 it will run the customers main, etc. How do I do this?
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws InputValidationException {
//run customer add/edit/remove
int choice = 0;
while (true) {
displayMenu();
switch (choice) {
case 1:
customers.main(null);
break;
case 2:
cars.main(null);
break;
case 3:
Staff.main(null);
break;
}
}
}
private static void displayMenu() {
Scanner input;
{
input = new Scanner(System.in);
{
System.out.println("1. Customers");
System.out.println("2. Cars");
System.out.println("3. Staff");
System.out.println("Which would you like to add/edit: ");
String choice = input.nextLine();
}
}
}
}
My other classes are fairly similar to this:
import java.util.Scanner;
import java.util.concurrent.CopyOnWriteArrayList;
//creates and array of the customers
public final class customers {
public static void main(String[] args) throws InputValidationException {
//add new customer
CopyOnWriteArrayList<customer> customers = new CopyOnWriteArrayList<>();
//List will fail in case of remove due to ConcurrentModificationException
//loop getting input
//input 'q' to quit
Scanner input;
{
//scanner to get the input
input = new Scanner(System.in);
{
while (true) {
//ask user for input and get input
System.out.println("Enter id (press 'q' to quit): ");
String temp = input.nextLine();
if (temp.equals("q")) break;
int id = Integer.parseInt(temp);
System.out.println("Enter first name:");
String firstName = input.nextLine();
System.out.println("Enter last name:");
String lastName = input.nextLine();
//add to array list
customers.add(new customer(id, firstName, lastName));
}
}
}
//Display All
System.out.println("Current List: ");
for (customer customer : customers) {
System.out.println(customer.toString());
}
// search
System.out.println("Enter name to search and display");
String searchString = input.nextLine();
for (customer customer : customers) {
if (customer.search(searchString) != null) {
System.out.println(customer.toString());
}
}
//Remove
System.out.println("Enter name to search & remove");
searchString = input.nextLine();
for (customer customer : customers) {
if (customer.search(searchString) != null) {
System.out.println(customer.toString() + " is removed from the List");
customers.remove(customer);
}
}
}
}
The customer class just contains variables, setters, getters and constructors
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String input;
do {
input = displayMenu();
switch (input) {
case "1":
customers.main(args);
break;
case "2":
cars.main(args);
break;
case "3":
Staff.main(args);
break;
}
} while (!"exit".equals(input));
}
private static String displayMenu() {
Scanner input = new Scanner(System.in);
System.out.println("1. Customers");
System.out.println("2. Cars");
System.out.println("3. Staff");
System.out.println("Which would you like to add/edit: ");
return input.nextLine();
}
}
class customers {
public static void main(String[] args) {
System.out.println("hello from 'customers'!");
}
}
class cars {
public static void main(String[] args) {
System.out.println("hello from 'cars'");
}
}
class Staff {
public static void main(String[] args) {
System.out.println("hello from 'Staff'");
}
}