Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查JTextField中的文本是否为特定数据类型_Java_Validation_User Interface_Input - Fatal编程技术网

Java 检查JTextField中的文本是否为特定数据类型

Java 检查JTextField中的文本是否为特定数据类型,java,validation,user-interface,input,Java,Validation,User Interface,Input,我试图在我的类中为我的GUI编写一些验证代码。如何将JTextField中的文本输入while语句,并提示用户输入必要的数字(double)?更具体地说,如何检查我从JTextField获得的是字符串/字符串+数字/除数字以外的任何内容 String text=JTextField.getText(); while(text.equals*a string or anything but a number*); JOP("Invalid input ............ e

我试图在我的类中为我的GUI编写一些验证代码。如何将JTextField中的文本输入while语句,并提示用户输入必要的数字(double)?更具体地说,如何检查我从JTextField获得的是字符串/字符串+数字/除数字以外的任何内容

String text=JTextField.getText();

while(text.equals*a string or anything but a number*);
   JOP("Invalid input ............ etc...
如果你有时间,这是我的GUI和我的课程。我正在尝试对其余的方法执行此操作。但上述问题的答案就足够了

更新: 这就是我到目前为止所做的:

  //get the text entered in the amountRentText
  //JTextField and parse it to a Double
String amtRentIn=amountRentText.getText();

try{Double.parseDouble(amtRentIn);}
catch(NumberFormatException nfe){
   while()
       amtRentIn=JOptionPane.showInputDialog("Invalid input. Please "+
           "enter your rent: ");
 }

 double rent= Double.parseDouble(amtRentIn);
 fin.setRent(rent);

我该在这段时间里放些什么呢?

我想到的一个“便宜”但不太漂亮的解决方案是在该字符串上使用Double.parseDouble(..),并准备捕获在该字符串包含任何非数字内容时发生的解析异常。

便宜的解决方案我想到的不太好的解决方案是在该字符串上使用Double.parseDouble(..),并准备捕获在该字符串包含任何非数字内容时发生的解析异常。

就是为此而设计的。
verify()
的实现可以调用
parseDuble()
。这是另一个。

就是为此而设计的。
verify()
的实现可以调用
parseDuble()
。还有一个。

嗯。。。我在第一节课上是一个JavaNoob,这是我的最后一个项目。我对捕获异常不太了解。如果您正在查找或执行一个简单的测试,那么正如所述:尝试{Double.parseDouble(yourTextHere)}catch(NumberFormatException nfe){/*不是Double*/}好的,那么我将在哪里通过JOptionPane提示用户输入正确的数字?在试一试中{--}?这要看情况而定。你可以用多种方式来做。在这种情况下,重要的是可以引发此异常的代码位于try{}catch块内。因此,即使将用户的输入收集为字符串,重要的是在try-catch块中进行解析。其他人可能在外面。此外,在catch块中,您必须放置要执行的代码,以防由于来自用户的非数字输入而导致解析失败。ehm。。。我在第一节课上是一个JavaNoob,这是我的最后一个项目。我对捕获异常不太了解。如果您正在查找或执行一个简单的测试,那么正如所述:尝试{Double.parseDouble(yourTextHere)}catch(NumberFormatException nfe){/*不是Double*/}好的,那么我将在哪里通过JOptionPane提示用户输入正确的数字?在试一试中{--}?这要看情况而定。你可以用多种方式来做。在这种情况下,重要的是可以引发此异常的代码位于try{}catch块内。因此,即使将用户的输入收集为字符串,重要的是在try-catch块中进行解析。其他人可能在外面。此外,在catch块中,您必须放置您想要执行的代码,以防由于用户的非数字输入而导致解析失败;并要求用户更改JTextField中的错误。“这是怎么回事呢?”@Andrei TheGiant Haxtor你是对的。最后一个不正确的=true是不必要的,我已经删除了它并更新了我的答案;并要求用户更改JTextField中的错误。“这是怎么回事呢?”@Andrei TheGiant Haxtor你是对的。最后一个不正确=true是不必要的,我已将其删除并更新了我的答案。
String amtRentIn=amountRentText.getText();
boolean incorrect = true;
while(incorrect){
try{Double.parseDouble(amtRentIn);incorrect = false;}
catch(NumberFormatException nfe){
   amtRentIn=JOptionPane.showInputDialog("Invalid input. Please "+
           "enter your rent: ");
 }

}