user5933857
user5933857

Reputation:

How would I get a specific number range from a textfield?

I'm currently working on a search method in school and I'm stuck in a newbie mistake.

I havent been programming for long and I tried searching the internet for solutions but couldnt find any. I would need to get a number range from 1-10 from the textfield and then put it as an int. Once I've done that I would have to send it to my search method which I am working on. Thanks in advance peeps.

String Value = txfSort.getText();
int NumberValue = Integer.valueOf(Value);

Upvotes: 0

Views: 1679

Answers (2)

try that one:

textField.addKeyListener(new KeyAdapter(){
            public void keyTyped(KeyEvent e) {
                char caracter = e.getKeyChar();
                if (((caracter < '0') || (caracter > '9')) // for numbers only
                        && (caracter != '\b')) {
                    e.consume();
                }
                if (Integer.valueOf(textField.getText() + caracter) > 10) {
                    e.consume(); // if on the text field the numbers are bigger 
                                 // than 10, consumes the last number typed
                }   
            }
        });

Upvotes: 0

Jure
Jure

Reputation: 799

Probably you should first limit the input of textFields to nummeric values. You can help your self with question here: What is the recommended way to make a numeric TextField in JavaFX?

public class NumberTextField extends TextField
{

    @Override
    public void replaceText(int start, int end, String text)
    {
        if (validate(text))
        {
            super.replaceText(start, end, text);
        }
    }

    @Override
    public void replaceSelection(String text)
    {
        if (validate(text))
        {
            super.replaceSelection(text);
        }
    }

    private boolean validate(String text)
    {
        return text.matches("[0-9]*");
    }
}

Code by: Burkhard

Above code would automaticly check on entry if input is ok. So then you just check, if value is > 0 and < 10. If that is true you just call your method and use value of textField.

One way of doing described would be this:

int value = Integer.valueOf(txfSort.getText());
if(value > 0 && value < 10)
{
   myMethod(value);
}

Upvotes: 1

Related Questions