Java 如果用户输入的字符不是';t是整数
我正在为我所在的一个类编写这个程序,我已经能够创建这个代码。我知道这里很乱,我道歉。我需要找到一种方法让程序阻止用户输入除和整数之外的任何内容。如果我有办法让它检查的话,我将能够让自己出现一个新的舞台。如果有什么想法的话,我很乐意听到。再一次,我不是要求任何人为我制作应用程序,我只是需要一种方法来检查是否有整数以外的字符,并在这种情况下做些什么。就像一个for-else循环。提前谢谢。(这是我第一次使用JavaFX,所以请放心:/Java 如果用户输入的字符不是';t是整数,java,javafx,Java,Javafx,我正在为我所在的一个类编写这个程序,我已经能够创建这个代码。我知道这里很乱,我道歉。我需要找到一种方法让程序阻止用户输入除和整数之外的任何内容。如果我有办法让它检查的话,我将能够让自己出现一个新的舞台。如果有什么想法的话,我很乐意听到。再一次,我不是要求任何人为我制作应用程序,我只是需要一种方法来检查是否有整数以外的字符,并在这种情况下做些什么。就像一个for-else循环。提前谢谢。(这是我第一次使用JavaFX,所以请放心:/ import java.util.InputMismatchEx
import java.util.InputMismatchException;
import org.omg.CORBA.portable.InputStream;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.layout.VBoxBuilder;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.event.*;
public class Lab9Test extends Application {
public static void main(String[] args) {
// TODO Auto-generated method stub
//launch it all
launch(args);
}
@Override //create the grids scenes stages needed to run the program
public void start(Stage primaryStage) throws Exception {
// TODO Auto-generated method stub
final Stage dialogStage = new Stage();
Label Label1 = new Label ("ERROR! You cannot divide by zero!");
Button Okay = new Button("Okay!");
GridPane GPane2 = new GridPane();
GPane2.setAlignment(Pos.TOP_LEFT);
GPane2.setVgap(10);
GPane2.setHgap(-32);
GPane2.setPadding(new Insets(10,10,10,10));
Scene scene2 = new Scene(GPane2, 222,300);
GridPane.setConstraints(Okay,4,1);
GridPane.setConstraints(Label1,0,2);
VBox root = new VBox();
dialogStage.setScene(scene2);
dialogStage.getIcons().add(new
GPane2.getChildren().addAll(Label1, Okay);
Okay.setOnAction(new EventHandler<ActionEvent>(){
public void handle(ActionEvent event){
dialogStage.close();
}
});
primaryStage.setTitle("JavaFX Arithmatic");
GridPane GPane = new GridPane();
GPane.setAlignment(Pos.TOP_LEFT);
GPane.setVgap(10);
GPane.setHgap(-75);
GPane.setPadding(new Insets(10,10,10,10));
Scene scene = new Scene(GPane, 325, 250);
Button add = new Button();
add.setText("+");
Button multiply = new Button();
multiply.setText("*");
Button divide = new Button();
divide.setText("/");
Button subtract = new Button();
subtract.setText("-");
Button percent = new Button();
percent.setText("%");
Button clear = new Button();
clear.setText("CLEAR");
Text scenetitle = new Text("Enter two numbers and select an operation.");
Text SecondNumber = new Text("Second Number:");
Text FirstNumber = new Text("First Number:");
Text Result = new Text("Result:");
//create text fields
final TextField TFFirstNumber = new TextField();
final TextField TFSecondNumber = new TextField();
final TextField TFResult = new TextField();
//change position on grid
GridPane.setConstraints(FirstNumber,0,1);
GridPane.setConstraints(SecondNumber,0,2);
GridPane.setConstraints(Result,0,3);
GridPane.setConstraints(add,0,4);
GridPane.setConstraints(multiply,0,5);
GridPane.setConstraints(percent,0,6);
GridPane.setConstraints(divide,1,5);
GridPane.setConstraints(subtract,1,4);
GridPane.setConstraints(clear,1,6);
GridPane.setConstraints(scenetitle,0,0);
GridPane.setConstraints(TFFirstNumber,1,1);
GridPane.setConstraints(TFSecondNumber,1,2);
GridPane.setConstraints(TFResult,1,3);
GPane.getChildren().addAll(TFResult,TFFirstNumber,TFSecondNumber,add,FirstNumber,SecondNumber,Result,subtract,multiply,divide,percent,clear,scenetitle);
//change size and alter the text fields
add.setMaxWidth(150);
subtract.setMaxWidth(150);
clear.setMaxWidth(150);
divide.setMaxWidth(150);
percent.setMaxWidth(150);
multiply.setMaxWidth(150);
TFFirstNumber.setMaxWidth(150);
TFSecondNumber.setMaxWidth(150);
TFResult.setMaxWidth(150);
TFResult.setEditable(false);
primaryStage.setScene(scene);
primaryStage.getIcons().add(new
primaryStage.show();
//give all of the buttons a purpose in life
add.setOnAction(new EventHandler<ActionEvent>(){
public void handle(ActionEvent event){
Integer value1 = Integer.valueOf(TFFirstNumber.getText());
Integer value2 = Integer.valueOf(TFSecondNumber.getText());
Integer r = value1 + value2;
TFResult.setText(r.toString());
}
});
subtract.setOnAction(new EventHandler<ActionEvent>(){
public void handle(ActionEvent event){
Integer value1 = Integer.valueOf(TFFirstNumber.getText());
Integer value2 = Integer.valueOf(TFSecondNumber.getText());
Integer r = value1 - value2;
TFResult.setText(r.toString());
}
});
multiply.setOnAction(new EventHandler<ActionEvent>(){
public void handle(ActionEvent event){
Integer value1 = Integer.valueOf(TFFirstNumber.getText());
Integer value2 = Integer.valueOf(TFSecondNumber.getText());
Integer r = value1 * value2;
TFResult.setText(r.toString());
}
});
divide.setOnAction(new EventHandler<ActionEvent>(){
public void handle(ActionEvent event){
Integer value1 = Integer.valueOf(TFFirstNumber.getText());
Integer value2 = Integer.valueOf(TFSecondNumber.getText());
if(value2==0){
dialogStage.show();
}
else{
Integer r = value1 / value2;
TFResult.setText(r.toString());
}
}
});
percent.setOnAction(new EventHandler<ActionEvent>(){
public void handle(ActionEvent event){
Integer value1 = Integer.valueOf(TFFirstNumber.getText());
Integer value2 = Integer.valueOf(TFSecondNumber.getText());
Integer r = value1 % value2;
TFResult.setText(r.toString());
}
});
clear.setOnAction(new EventHandler<ActionEvent>(){
public void handle(ActionEvent event){
TFFirstNumber.clear();
TFSecondNumber.clear();
TFResult.clear();
}
});
}
}
import java.util.InputMismatchException;
导入org.omg.CORBA.portable.InputStream;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.geometry.Insets;
导入javafx.geometry.Pos;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.control.Label;
导入javafx.scene.control.TextField;
导入javafx.scene.image.image;
导入javafx.scene.image.ImageView;
导入javafx.scene.layout.GridPane;
导入javafx.scene.layout.HBox;
导入javafx.scene.layout.StackPane;
导入javafx.scene.layout.VBox;
导入javafx.scene.layout.VBoxBuilder;
导入javafx.scene.text.Font;
导入javafx.scene.text.FontWeight;
导入javafx.scene.text.text;
导入javafx.stage.model;
导入javafx.stage.stage;
导入javafx.event.*;
公共类Lab9Test扩展了应用程序{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
//全部启动
发射(args);
}
@覆盖//创建运行程序所需的网格
public void start(Stage primaryStage)引发异常{
//TODO自动生成的方法存根
最终阶段dialogStage=新阶段();
Label Label1=新标签(“错误!不能被零除!”);
按钮OK=新按钮(“OK!”);
GridPane GPane2=新的GridPane();
GPane2.设置对齐(位置左上方);
GPane2.setVgap(10);
GPane2.setHgap(-32);
GPane2.设置填充(新插图(10,10,10,10));
场景场景2=新场景(gpane2222300);
设置约束(好的,4,1);
setConstraints(标签1,0,2);
VBox root=新的VBox();
dialogStage.setScene(场景2);
dialogStage.getIcons().add(新建)
GPane2.getChildren().addAll(Label1,ok);
好的。setOnAction(新的EventHandler(){
公共无效句柄(ActionEvent事件){
dialogStage.close();
}
});
setTitle(“JavaFX Arithmatic”);
GridPane GPane=新的GridPane();
G平面设置对齐(位置左上方);
GPane.setVgap(10);
GPane.setHgap(-75);
GPane.setPadding(新插图(10,10,10,10));
场景=新场景(GPane,325250);
按钮添加=新按钮();
添加.setText(“+”);
按钮倍增=新按钮();
multiply.setText(“*”);
按钮分割=新按钮();
除以.setText(“/”);
按钮减去=新按钮();
减去.setText(“-”);
按钮百分比=新按钮();
百分比。setText(“%”);
按钮清除=新按钮();
clear.setText(“clear”);
Text scenetitle=新文本(“输入两个数字并选择一个操作”);
Text SecondNumber=新文本(“第二个数字:”);
Text FirstNumber=新文本(“第一个数字:”);
文本结果=新文本(“结果:”);
//创建文本字段
final TextField TFFirstNumber=新TextField();
最终文本字段TFSecondNumber=新文本字段();
最终文本字段TFResult=新文本字段();
//更改网格上的位置
setConstraints(FirstNumber,0,1);
setConstraints(SecondNumber,0,2);
设置约束(结果,0,3);
setConstraints(add,0,4);
设置约束(乘法,0,5);
设置约束(百分比,0,6);
设置约束(除法,1,5);
设置约束(减法,1,4);
设置约束(清除,1,6);
设置约束(场景,0,0);
setConstraints(TFFirstNumber,1,1);
setConstraints(TFSecondNumber,1,2);
setConstraints(TFResult,1,3);
GPane.getChildren().addAll(TFResult、TFFirstNumber、TFSecondNumber、add、FirstNumber、SecondNumber、Result、subtract、multiply、divide、percent、clear、scenetitle);
//更改大小并更改文本字段
添加.setMaxWidth(150);
减去setMaxWidth(150);
清除。设置最大宽度(150);
divide.setMaxWidth(150);
百分比.setMaxWidth(150);
乘以.setMaxWidth(150);
TFFirstNumber.setMaxWidth(150);
TFSecondNumber.setMaxWidth(150);
TFResult.setMaxWidth(150);
TFResult.setEditable(false);
初级阶段。场景(场景);
primaryStage.getIcons().add(新建)
primaryStage.show();
//给所有的按钮一个生活的目标
add.setOnAction(新的EventHandler(){
公共无效句柄(ActionEvent事件){
Integer value1=Integer.valueOf(TFFirstNumber.getText());
Integer value2=Integer.valueOf(TFSecondNumber.getText());
整数r=值1+值2;
TFResult.setText(r.toString());
}
});
subtract.setOnAction(新的EventHandler(){
公共无效句柄(ActionEvent事件){
Integer value1=Integer.valueOf(TFFirstNumber.getText());
Integer value2=Integer.valueOf(TFSecondNumber.getText());
整数r=值1-值2;
TFResult.setText(r.toString());
}
});
multiply.setOnAction(新的EventHandler(){
公共无效句柄(ActionEvent事件){
public void handle(ActionEvent event) {
Integer value1 = 0;
Integer value2 = 0;
try {
value1 = Integer.valueOf(TFFirstNumber.getText());
value2 = Integer.valueOf(TFSecondNumber.getText());
} catch(Exception e) {
System.err.println("Wrong input value: needs to be an integer");
return; // i.e. do mothing more
}
Integer r = value1 + value2;
TFResult.setText(r.toString());
}