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