从另一个JAVA类调用验证

从另一个JAVA类调用验证,java,class,validation,joptionpane,stringtokenizer,Java,Class,Validation,Joptionpane,Stringtokenizer,我在做一个有5门课的项目。其中之一是验证类。我在控制课上验证了数据,但教授希望在单独的课堂上验证。 这是我的代码示例。用户在令牌中输入信息。运行良好,但在控制器类中,我应该“调用”具有自己类的验证。我该怎么编码 while (tkCustomer.hasMoreTokens()){ //store each token in the corresponding variable //Make sure we format integers //variablename

我在做一个有5门课的项目。其中之一是验证类。我在控制课上验证了数据,但教授希望在单独的课堂上验证。 这是我的代码示例。用户在令牌中输入信息。运行良好,但在控制器类中,我应该“调用”具有自己类的验证。我该怎么编码

while (tkCustomer.hasMoreTokens()){

    //store each token in the corresponding variable
    //Make sure we format integers
    //variablename = tkCustomer.nextToken();
        firstName = tkCustomer.nextToken( );
        lastName = tkCustomer.nextToken ( ); 
        phone = tkCustomer.nextToken ( );
        nbrVehicle = Integer.parseInt(tkCustomer.nextToken( ));
        nbrTanks = Integer.parseInt(tkCustomer.nextToken( ));
    }

    //validate each data entered here
        int firstNameLength = firstName.length();

        if(firstNameLength == 0){

            String errorMessage = "Please Enter a Valid First Name";
            JOptionPane.showMessageDialog(null, errorMessage, "Invalid Name", JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        }else{
            int lastNameLength = lastName.length();

            if(lastNameLength == 0){

                String errorMesssage = "Please Enter a Valid Last Name";
                JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Name", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
        }else{
              int phoneLength = phone.length();

              if(phoneLength != 10) {
                  String errorMesssage = "Please Enter a Valid Phone Number";
                  JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Phone Number", JOptionPane.ERROR_MESSAGE);
                  System.exit(0);
        }else{
            if(nbrVehicle < 1 || nbrVehicle > 10) {
                String errorMesssage = "Please Enter a Number Between 1 & 10 for Your Order of Vehicles";
                JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Vehicle Order", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
        }else{
             if(nbrTanks != 2 && nbrTanks != 4 && nbrTanks != 8 && nbrTanks != 10 && nbrTanks != 15 && nbrTanks != 20){

                 String errorMesssage = "Please Enter Either 2, 4, 8, 10, 15, or 20 for Your Order of Tanks";
                 JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Number of Tanks", JOptionPane.ERROR_MESSAGE);
                 System.exit(0);

             }
        }
        }
        }
        }
导入java.util.StringTokenizer

导入javax.swing.JOptionPane

公共类HayloFactoryController{

/**
 * @param args
 */
public static void main(String[] args) {

    //create variables to hold information collected from the user

    String firstName = null;
    String lastName = null;
    String phone = "";
    int nbrTanks = 0;
    int nbrVehicle = 0;
    double total = 0;

    do{

        //collect the data entered by the user in 
        //variables
    String customerMessage = "Please enter the following separated by spaces"
            + "\n\n"
            + "- Customer First Name\n"
            + "- Customer Last Name\n"
            + "- Customer Phone\n"
            + "- Number of Vehicles\n"
            + "- Number of Tanks"
            + "\n\n"
            + "Example: Homer Simpson 9094559384 5 8\n\n"
            ;

        StringTokenizer tkCustomer = new StringTokenizer(
                JOptionPane.showInputDialog(customerMessage));

    while (tkCustomer.hasMoreTokens()){

    //store each token in the corresponding variable
    //Make sure we format integers
    //variablename = tkCustomer.nextToken();
        firstName = tkCustomer.nextToken( );
        lastName = tkCustomer.nextToken ( ); 
        phone = tkCustomer.nextToken ( );
        nbrVehicle = Integer.parseInt(tkCustomer.nextToken( ));
        nbrTanks = Integer.parseInt(tkCustomer.nextToken( ));
    }

    //validate each data entered here
        int firstNameLength = firstName.length();

        if(firstNameLength == 0){

            String errorMessage = "Please Enter a Valid First Name";
            JOptionPane.showMessageDialog(null, errorMessage, "Invalid Name", JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        }else{
            int lastNameLength = lastName.length();

            if(lastNameLength == 0){

                String errorMesssage = "Please Enter a Valid Last Name";
                JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Name", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
        }else{
              int phoneLength = phone.length();

              if(phoneLength != 10) {
                  String errorMesssage = "Please Enter a Valid Phone Number";
                  JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Phone Number", JOptionPane.ERROR_MESSAGE);
                  System.exit(0);
        }else{
            if(nbrVehicle < 1 || nbrVehicle > 10) {
                String errorMesssage = "Please Enter a Number Between 1 & 10 for Your Order of Vehicles";
                JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Vehicle Order", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
        }else{
             if(nbrTanks != 2 && nbrTanks != 4 && nbrTanks != 8 && nbrTanks != 10 && nbrTanks != 15 && nbrTanks != 20){

                 String errorMesssage = "Please Enter Either 2, 4, 8, 10, 15, or 20 for Your Order of Tanks";
                 JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Number of Tanks", JOptionPane.ERROR_MESSAGE);
                 System.exit(0);

             }
        }
        }
        }
        }




    //Create a customer Object
    //CustomerObject variableName = new CustomerObject(arguments)
        HayloCustomer customer = new HayloCustomer (firstName, lastName, phone, nbrVehicle, nbrTanks, total);

    //Present the customer with a choice of vehicles
        String[]  choices = {"EV-EX 4", "EV-EX 6", "EV-DX 9", "EV-DX 12", "EV-SX 13"};

    int response = JOptionPane.showOptionDialog(
            null                                        // center over parent
            , "Select a Vehicle type and Number of Fuel Cells"   // message
            , "Vehicle & Fuel Cell Selection"               // title in title bar
            , JOptionPane.YES_NO_OPTION                     // Option type
            , JOptionPane.PLAIN_MESSAGE                     // messageType
            , null                                          // icon
            , choices                                       // Options
            , "APS 24"                                      // initial value
    );
    //get the selection from the customer
        StringTokenizer tkVehicle= new StringTokenizer(choices[response]);

    //populate the vehicle variables
        String vehicleType;
        int nbrCells;
        int costVehicle;
        int tankCost; 

    //while (tkVehicle.hasMoreTokens());
        vehicleType = tkVehicle.nextToken();
        nbrCells = Integer.parseInt(tkVehicle.nextToken());
        costVehicle = Integer.parseInt(tkVehicle.nextToken());
        tankCost = Integer.parseInt(tkVehicle.nextToken());

    //Create our vehicle object
    //VehicleObject variableName = new VehicleObject(arguments)
        HayloVehicle vehicleFactory = new HayloVehicle(vehicleType, nbrCells, costVehicle, tankCost);

    //Create our factory object
    //FactoryObject factoryVariableName = new FactoryObject(customerObjectVariable, vehicleObjectVariable);
        HayloFactory factory = new HayloFactory(customer, vehicleFactory);

    //ask the object to process the order
    //factoryVariableName.process();

        customer.toString();
        vehicleFactory.toString();
        factory.process();
        factory.toString();

    //write code below to display the result for each order
    JOptionPane.showMessageDialog(null, factory.getSummary());

}while (JOptionPane.showConfirmDialog(null, "Enter More Orders?") == JOptionPane.YES_OPTION);

    //write code below to display the summary for all the orders
    JOptionPane.showMessageDialog(null, HayloFactory.salesSummary()); 
}
/**
*@param args
*/
公共静态void main(字符串[]args){
//创建变量以保存从用户收集的信息
字符串firstName=null;
字符串lastName=null;
字符串phone=“”;
int=0;
int=0;
双倍合计=0;
做{
//收集用户在中输入的数据
//变数
String customerMessage=“请输入以下内容,以空格分隔”
+“\n\n”
+“-客户名\n”
+“-客户姓氏\n”
+“-客户电话\n”
+“-车辆数量\n”
+“-储罐数量”
+“\n\n”
+“示例:荷马·辛普森9094559384 5 8\n\n”
;
StringTokenizer TKCCustomer=新StringTokenizer(
showInputDialog(customerMessage));
while(tkCustomer.hasMoreTokens()){
//将每个令牌存储在相应的变量中
//确保我们格式化了整数
//variablename=tkCustomer.nextToken();
firstName=tkCustomer.nextToken();
lastName=tkCustomer.nextToken();
phone=tkCustomer.nextToken();
nbrvicer=Integer.parseInt(tkCustomer.nextToken());
nbrTanks=Integer.parseInt(tkCustomer.nextToken());
}
//验证此处输入的每个数据
int firstNameLength=firstName.length();
if(firstNameLength==0){
String errorMessage=“请输入有效的名字”;
showMessageDialog(null,errorMessage,“无效名称”,JOptionPane.ERROR\u消息);
系统出口(0);
}否则{
int lastName length=lastName.length();
如果(lastNameLength==0){
String ErrorMessage=“请输入有效的姓氏”;
showMessageDialog(null,errorMessage,“无效名称”,JOptionPane.ERROR\u消息);
系统出口(0);
}否则{
int phoneLength=phone.length();
如果(phoneLength!=10){
String ErrorMessage=“请输入有效的电话号码”;
JOptionPane.showMessageDialog(空,错误消息,“无效电话号码”,JOptionPane.ERROR_消息);
系统出口(0);
}否则{
如果(NBR车辆<1 | | NBR车辆>10){
String ErrorMessage=“请为您的车辆订单输入一个介于1和10之间的数字”;
JOptionPane.showMessageDialog(null,错误消息,“无效的车辆订单”,JOptionPane.ERROR_消息);
系统出口(0);
}否则{
如果(NBR储罐!=2&&NBR储罐!=4&&NBR储罐!=8&&NBR储罐!=10&&NBR储罐!=15&&NBR储罐!=20){
String ERRORMESSAGE=“请为您的坦克订单输入2、4、8、10、15或20”;
JOptionPane.showMessageDialog(null,ErrorMessage,“无效的坦克数量”,JOptionPane.ERROR_消息);
系统出口(0);
}
}
}
}
}
//创建客户对象
//CustomerObject variableName=新CustomerObject(参数)
Haylocastomer客户=新Haylocastomer(名字、姓氏、电话、NBR车辆、NBR坦克、总数);
//为客户提供车辆选择
字符串[]选项={“EV-EX 4”、“EV-EX 6”、“EV-DX 9”、“EV-DX 12”、“EV-SX 13”};
int response=JOptionPane.showOptionDialog(
空//居于父对象之上
,“选择车辆类型和燃料电池数量”//信息
,“车辆和燃料电池选择”//标题栏中的标题
,JOptionPane.YES\u NO\u选项//选项类型
,JOptionPane.PLAIN\u消息//消息类型
,空//图标
,选项//选项
,“APS 24”//初始值
);
//从客户那里获得选择
StringTokenizer tkVehicle=新的StringTokenizer(选项[response]);
//填充车辆变量
字符串车辆类型;
int细胞;
运输工具;
国际油轮成本;
//while(tkVehicle.hasMoreTokens());
vehicleType=tkVehicle.nextToken();
nbrCells=Integer.parseInt(tkVehicle.nextToken());
costVehicle=Integer.parseInt(tkVehicle.nextToken());
tankCost=Integer.parseInt(tkVehicle.nextToken());
//创建我们的车辆对象
//VehicleObject variableName=新VehicleObject(参数)
HayloVehicle车辆工厂=新HayloVehicle(车辆类型、NBRCELL、costVehicle、tankCost);
//创建我们的工厂对象
//FactoryObject factoryVariableName=新FactoryObject(CustomerObject变量,vehicleObjectVariable);
HayloFactory=新HayloFactory(客户、车辆工厂);
//要求对象处理订单
//factoryVariableName.process();
customer.toString();
vehicleFactory.toString();
factory.process();
factory.toString();
//在下面编写代码以显示每个订单的结果
showMessageDialog(null,factory.getSummary());
}while(JOptionPane.showConfirmDialog(null,“输入更多订单?”)==JOptionPane.YES\u选项);
//在下面编写代码以显示总和
/**
 * @param args
 */
public static void main(String[] args) {

    //create variables to hold information collected from the user

    String firstName = null;
    String lastName = null;
    String phone = "";
    int nbrTanks = 0;
    int nbrVehicle = 0;
    double total = 0;

    do{

        //collect the data entered by the user in 
        //variables
    String customerMessage = "Please enter the following separated by spaces"
            + "\n\n"
            + "- Customer First Name\n"
            + "- Customer Last Name\n"
            + "- Customer Phone\n"
            + "- Number of Vehicles\n"
            + "- Number of Tanks"
            + "\n\n"
            + "Example: Homer Simpson 9094559384 5 8\n\n"
            ;

        StringTokenizer tkCustomer = new StringTokenizer(
                JOptionPane.showInputDialog(customerMessage));

    while (tkCustomer.hasMoreTokens()){

    //store each token in the corresponding variable
    //Make sure we format integers
    //variablename = tkCustomer.nextToken();
        firstName = tkCustomer.nextToken( );
        lastName = tkCustomer.nextToken ( ); 
        phone = tkCustomer.nextToken ( );
        nbrVehicle = Integer.parseInt(tkCustomer.nextToken( ));
        nbrTanks = Integer.parseInt(tkCustomer.nextToken( ));
    }

    //validate each data entered here
        int firstNameLength = firstName.length();

        if(firstNameLength == 0){

            String errorMessage = "Please Enter a Valid First Name";
            JOptionPane.showMessageDialog(null, errorMessage, "Invalid Name", JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        }else{
            int lastNameLength = lastName.length();

            if(lastNameLength == 0){

                String errorMesssage = "Please Enter a Valid Last Name";
                JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Name", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
        }else{
              int phoneLength = phone.length();

              if(phoneLength != 10) {
                  String errorMesssage = "Please Enter a Valid Phone Number";
                  JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Phone Number", JOptionPane.ERROR_MESSAGE);
                  System.exit(0);
        }else{
            if(nbrVehicle < 1 || nbrVehicle > 10) {
                String errorMesssage = "Please Enter a Number Between 1 & 10 for Your Order of Vehicles";
                JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Vehicle Order", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
        }else{
             if(nbrTanks != 2 && nbrTanks != 4 && nbrTanks != 8 && nbrTanks != 10 && nbrTanks != 15 && nbrTanks != 20){

                 String errorMesssage = "Please Enter Either 2, 4, 8, 10, 15, or 20 for Your Order of Tanks";
                 JOptionPane.showMessageDialog(null, errorMesssage, "Invalid Number of Tanks", JOptionPane.ERROR_MESSAGE);
                 System.exit(0);

             }
        }
        }
        }
        }




    //Create a customer Object
    //CustomerObject variableName = new CustomerObject(arguments)
        HayloCustomer customer = new HayloCustomer (firstName, lastName, phone, nbrVehicle, nbrTanks, total);

    //Present the customer with a choice of vehicles
        String[]  choices = {"EV-EX 4", "EV-EX 6", "EV-DX 9", "EV-DX 12", "EV-SX 13"};

    int response = JOptionPane.showOptionDialog(
            null                                        // center over parent
            , "Select a Vehicle type and Number of Fuel Cells"   // message
            , "Vehicle & Fuel Cell Selection"               // title in title bar
            , JOptionPane.YES_NO_OPTION                     // Option type
            , JOptionPane.PLAIN_MESSAGE                     // messageType
            , null                                          // icon
            , choices                                       // Options
            , "APS 24"                                      // initial value
    );
    //get the selection from the customer
        StringTokenizer tkVehicle= new StringTokenizer(choices[response]);

    //populate the vehicle variables
        String vehicleType;
        int nbrCells;
        int costVehicle;
        int tankCost; 

    //while (tkVehicle.hasMoreTokens());
        vehicleType = tkVehicle.nextToken();
        nbrCells = Integer.parseInt(tkVehicle.nextToken());
        costVehicle = Integer.parseInt(tkVehicle.nextToken());
        tankCost = Integer.parseInt(tkVehicle.nextToken());

    //Create our vehicle object
    //VehicleObject variableName = new VehicleObject(arguments)
        HayloVehicle vehicleFactory = new HayloVehicle(vehicleType, nbrCells, costVehicle, tankCost);

    //Create our factory object
    //FactoryObject factoryVariableName = new FactoryObject(customerObjectVariable, vehicleObjectVariable);
        HayloFactory factory = new HayloFactory(customer, vehicleFactory);

    //ask the object to process the order
    //factoryVariableName.process();

        customer.toString();
        vehicleFactory.toString();
        factory.process();
        factory.toString();

    //write code below to display the result for each order
    JOptionPane.showMessageDialog(null, factory.getSummary());

}while (JOptionPane.showConfirmDialog(null, "Enter More Orders?") == JOptionPane.YES_OPTION);

    //write code below to display the summary for all the orders
    JOptionPane.showMessageDialog(null, HayloFactory.salesSummary()); 
}