Blacklisting characters in a controlP5 textField

280 Views Asked by At

In the controlP5 library, I need to prohibit certain characters from being entered into a textField.

I found a piece of code where you indicate what to prohibit, but I don’t know how to enforce the conditions (possibly by emulating the erase button?).

This is what I'd like to whitelist:enter image description here

1

There are 1 best solutions below

16
On BEST ANSWER

ControlP5 provides built-in whitelist filters for numbers: integers (0-9) and floats (which is integers and .):

textField.setInputFilter(ControlP5.INTEGER);

textField.setInputFilter(ControlP5.FLOAT);

Looking at your screenshot, it seems you want to whitelist , too. Custom filters are not possible, even when extending the Textfield class due to how the class is setup (the critical members are protected or private).

So that leaves you with this indirect option to additionally whitelist ,:

@Override
public void keyPressed(KeyEvent event) {
    if (event.getKey() == ',') {
        textField.setText(textField.getText() + ',');
    }
}

, is whitelisted by appending it to the textfield's current text when Processing detects the correct key pressed event.