2

在我的程序中,我有一个读取用户输入的 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("");
    }
});
4

2 回答 2

0

parseFloatNumberFormatException如果传递的String不包含可解析的 ,则抛出 a float。您可以捕获此异常以检测用户是否输入了float

try {
  firstEntry = Float.parseFloat(dataEntry.getText());
} catch (NumberFormatException e) {
  // input is not a float
}

Scanner如果您不想处理异常,另一种选择是使用 a :

Scanner scanner = new Scanner(dataEntry.getText());
if (scanner.hasNextFloat()) {
  firstEntry = scanner.nextFloat();
} else {
  // input is not a float
}
于 2012-09-29T23:19:25.167 回答
0

我会避免使用异常捕获机制来检查值是否为数字,因为这是 java 中非常昂贵的过程。

如果你使用 FormattedTextFields 会更好:formattedtextfield

这需要一些代码,但这是一个非常优雅的解决方案。您也可以使用此概念编写自己的格式。

于 2012-09-29T23:35:16.410 回答