检查JTextField中的文本是否是某种数据类型

时间:2010-12-13 02:21:37

标签: java validation user-interface input

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

String text=JTextField.getText();

while(text.equals*a string or anything but a number*);
   JOP("Invalid input ............ etc...

如果你有时间,这是我的GUI和我的课程。我试图为其余的方法做这个。但上述答案就足够了。

http://www.mediafire.com/?f079i1xtihypg1b

http://www.mediafire.com/file/f079i1xtihypg1b/FinanceGUI.java

更新

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

  //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);

我该放什么?

3 个答案:

答案 0 :(得分:1)

javax.swing.InputVerifier就是为此而设计的。您verify()的实施可以调用parseDuble()。这是另一个example

答案 1 :(得分:0)

我遇到的“廉价”不太漂亮的解决方案是在该字符串上使用Double.parseDouble(..),并准备好捕获在String有任何非事件时发生的解析异常数字内容。

答案 2 :(得分:0)

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: ");
 }

}