java - 整数的 JTextfield 监听器

标签 java swing jtextfield documentlistener

我很难找到一个解决方案来为 JTextField 编写监听器,特别是只允许整数值(不允许 String)。我试过了 this recommended link在 Document Listener 上,但我不知道调用什么方法等。

我以前从未使用过这种类型的监听器,所以谁能解释我如何在 JTextField 上编写监听器以仅允许可以接受的整数值?

基本上,在我点击一个 JButton 之后,在数据被提取到一个变量之前,Listener 将不允许处理它,直到输入一个整数。

非常感谢。

最佳答案

您不需要监听器,您想要从 JTextField 获取文本并测试它是否为 int

if (!input.getText().trim().equals(""))
{
    try 
    {
        Integer.parseInt(myString);
        System.out.println("An integer"):
    }
    catch (NumberFormatException) 
    {
        // Not an integer, print to console:
        System.out.println("This is not an integer, please only input an integer.");
        // If you want a pop-up instead:
        JOptionPane.showMessageDialog(frame, "Invalid input. Enter an integer.", "Error", JOptionPane.ERROR_MESSAGE);
    }
}

您也可以使用正则表达式(有点矫枉过正,但它有效):

boolean isInteger = Pattern.matches("^\d*$", myString);

关于java - 整数的 JTextfield 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15752876/

相关文章:

java - 无法连接到intellij中的Wildfly服务器

java - 在 Java 中执行 ActionPerformed 期间更新 JTextFields

java - 如何获取 JTextField 中的字符数?

java - 自动完成 JTextField 和箭头键

Javascript调用java函数并在Android webview上进行消费操作

java - 使用 Reactive Android 拉动刷新时添加更多订阅

java - 在哪里可以找到提取特定 exif 的元数据类型列表

java - 从网络驱动器加载图像?

java - 我如何知道是否单击了鼠标单击了自动完成装饰的 JComboBox 的项目?

java - 在 JTable 中搜索通过 JTextField 数据输入的数据