我目前正在学校开展搜索方法,并且遇到了新手的错误。
我没有编程很长时间,我试图在互联网上寻找解决方案,但无法找到任何解决方案。我需要从文本字段中获取1-10的数字范围,然后将其作为int。一旦我完成了,我就必须将它发送到我正在处理的搜索方法。在此先感谢窥视。
String Value = txfSort.getText();
int NumberValue = Integer.valueOf(Value);
答案 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
}
}
});