Java 如果用户输入的字符不是';t是整数

Java 如果用户输入的字符不是';t是整数,java,javafx,Java,Javafx,我正在为我所在的一个类编写这个程序,我已经能够创建这个代码。我知道这里很乱,我道歉。我需要找到一种方法让程序阻止用户输入除和整数之外的任何内容。如果我有办法让它检查的话,我将能够让自己出现一个新的舞台。如果有什么想法的话,我很乐意听到。再一次,我不是要求任何人为我制作应用程序,我只是需要一种方法来检查是否有整数以外的字符,并在这种情况下做些什么。就像一个for-else循环。提前谢谢。(这是我第一次使用JavaFX,所以请放心:/ import java.util.InputMismatchEx

我正在为我所在的一个类编写这个程序,我已经能够创建这个代码。我知道这里很乱,我道歉。我需要找到一种方法让程序阻止用户输入除和整数之外的任何内容。如果我有办法让它检查的话,我将能够让自己出现一个新的舞台。如果有什么想法的话,我很乐意听到。再一次,我不是要求任何人为我制作应用程序,我只是需要一种方法来检查是否有整数以外的字符,并在这种情况下做些什么。就像一个for-else循环。提前谢谢。(这是我第一次使用JavaFX,所以请放心:/

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());
}