我如何从文本字段中获取特定的数字范围?

时间:2016-02-16 07:59:48

标签: java

我目前正在学校开展搜索方法,并且遇到了新手的错误。

我没有编程很长时间,我试图在互联网上寻找解决方案,但无法找到任何解决方案。我需要从文本字段中获取1-10的数字范围,然后将其作为int。一旦我完成了,我就必须将它发送到我正在处理的搜索方法。在此先感谢窥视。

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

2 个答案:

答案 0 :(得分:1)

可能您应该首先将textFields的输入限制为nummeric值。您可以在此处提出问题来帮助您自己: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]*");
    }
}

代码:Burkhard

如果输入正常,上面的代码会自动检查输入。那么你只需检查,如果值是> 0和< 10.如果这是真的,你只需调用你的方法并使用textField的值。

描述的一种方式是:

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

答案 1 :(得分:0)

尝试一下:

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
                }   
            }
        });