在我的程序中,我有一个JTextField读取用户输入。用户应该输入一个数字,然后单击一个JButton来确认输入,但是我希望有一个问题,如果用户没有输入数字,会出现一个弹出窗口,告诉用户输入不正确。如何在点击JButton时检测用户是否输入数字?如果我需要提供更多代码,请告诉我。
JButton okay = new JButton("OK");
JTextField dataEntry = new JTextfield();
okay.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
firstEntry = Float.parseFloat(dataEntry.getText());
//want to see if it's a float, if true, run the following code
confirm = true;
changeText();
dataEntry.setText("");
}
});
答案 0 :(得分:0)
NumberFormatException
不包含可解析的String
,则 parseFloat
会抛出float
。您可以捕获此异常以检测用户是否输入了float
:
try {
firstEntry = Float.parseFloat(dataEntry.getText());
} catch (NumberFormatException e) {
// input is not a float
}
如果您不想处理异常,另一个选择是使用Scanner
:
Scanner scanner = new Scanner(dataEntry.getText());
if (scanner.hasNextFloat()) {
firstEntry = scanner.nextFloat();
} else {
// input is not a float
}
答案 1 :(得分:0)
我会避免使用异常的catch-mechanism来检查该值是否为数字,因为这是一个非常昂贵的java过程。
如果您使用FormattedTextFields:formattedtextfield
会更好这需要一些代码,但这是一个非常优雅的解决方案。您也可以使用此概念编写自己的格式。