Java 检查JTextField中的文本是否为特定数据类型
我试图在我的类中为我的GUI编写一些验证代码。如何将JTextField中的文本输入while语句,并提示用户输入必要的数字(double)?更具体地说,如何检查我从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
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: ");
}
}