我正在尝试在我的类中为我的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);
我该放什么?
答案 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: ");
}
}