当前位置: 首页 > 知识库问答 >
问题:

如何在controlP5文本域中指定数字输入范围?

许振海
2023-03-14

具体地说,当文本字段中的第一个字符为0时,如何防止输入?controlP5筛选器不起作用。public void keyPressed(KeyEvent e){int key=e.getkeycode();if(key=>5&&key<=25)e.setkeychar(''...//x10.settext?如何使数字输入范围从textField中的第一个字符“、”和“0”开始?如果(points>=5&&points<=25){例如Controlp5库不起作用。http://www.sojamo.de/libraries/Controlp5/reference/Controlp5/textField.inputfilter.html

共有1个答案

洪成济
2023-03-14

下面的代码就是您想要的--将其放在draw()的末尾(而不是keypressed(),因为在controlP5使用键事件之前调用keypressed())。

然而,你的要求是有问题的。您希望在用户输入时验证数字,而不是在输入完全输入后验证数字。这就导致了一个问题:假设他们希望输入“15”;他们首先输入“1”,但这将被拒绝,因为它不在正确的范围内(5-25)。最好在输入完全输入后(例如,当按下enter键时)验证输入,或者改用滑块或旋钮。

if (keyPressed && textField.isFocus()) {
    float n;
    try {
        n = Float.parseFloat(textField.getText().replace(',', '.')); // may throw exception
        if (!(n >= 5 && n <= 25)) {
            throw new NumberFormatException(); // throw to catch below
        }

    } catch (Exception e2) {
        String t;
        if (textField.getText().length() > 1) {
            t = textField.getText().substring(0, textField.getText().length() - 1);
        } else {
            t = "";
        }
        textField.setText(t);
    }
}
 类似资料:
  • 问题内容: 我想在输入文本字段的同时更新我的​​文本区域,但是在输入时我延迟了1次击键,即当我按下一个键时,会显示上一个键。这是我的代码段 问题答案: 我不建议使用 只需在您的via中添加一个: 里面每个方法(,和)只需要一个电话设置你的文字通过: 这是我做的一个例子:

  • 在controlP5库中,我需要禁止在中输入某些字符。 我发现了一段代码,其中指出要禁止什么,但我不知道如何强制执行这些条件(可能是通过模拟擦除按钮?)。

  • 问题内容: 我想将数字限制在一定范围内。目前,我正在执行以下操作: 这样可以将其保留在和中,但看起来不太好。我怎样才能做得更好? PS:仅供参考,我正在使用Python 2.6。 问题答案: def clamp(n, minn, maxn): return max(min(maxn, n), minn) 或功能等效: 现在,您使用: 或者说得很清楚: 更清晰:

  • 问题内容: 如何指定从(空格)到Unicode字符的范围? 我有一个类似的正则表达式,它不会编译说这是一个错误的范围。我是Unicode正则表达式的新手,所以我以前从未遇到过此问题。 有没有办法使我忘记或尚未学习的编译或正则表达式? 问题答案: unicode范围的语法不会达到您的期望。 原始字符串可防止对转义进行解析,而正则表达式引擎将不执行此操作。此集合中的唯一范围是: in literal

  • 主要内容:创建文本域,TextField文本,示例-1,实例-2,实例-3用于单行文本输入。请看下面的示例 - 和字段扩展了类,它是JavaFX中所有文本控件的超类。 上面的代码生成以下结果。 创建文本域 我们可以使用类的构造函数来创建文本字段。 只是一个带有光标的文本输入框,通常我们需要一个控件来告诉文本字段的目的。以下代码创建一个控件来标记对应的文本字段是用于名称输入。然后它创建一个对象。之后,它使用HBox布局和。 使用预定义文本创建文本字段。 TextField

  • 问题内容: 对于所有默认输入,您要填充的文本从左侧开始。您如何使它从右边开始? 问题答案: 在CSS中使用text-align属性: 这将在页面的所有输入中生效。 否则,如果只想对齐一个输入的文本,请设置内联样式: