我正在尝试验证JTextField
中的整数值。我想确保用户只在设定范围之间输入整数值。我尝试使用JFormattedTextField
,但到目前为止没有运气。
答案 0 :(得分:0)
一个好的选择是使用InputVerifier
- 除非满足输入条件,否则您的文本字段不会产生焦点。由于您的限制不仅仅是格式化,而且还是数学格式,因此JFormattedTextField
不会在这里做。
public class NumRange extends JFrame {
public static void main(String[] args) {
new NumRange();
}
NumRange() {
final int MIN = 0;
final int MAX = 100;
JTextField textField = new JTextField();
textField.setInputVerifier(new InputVerifier() {
@Override
public boolean verify(JComponent input) {
String text = ((JTextField) input).getText();
int num;
try {
num = Integer.parseInt(text);
} catch (NumberFormatException e) {
return false;
}
if (num <= MAX && num >= MIN)
return true;
return false;
}
});
getContentPane().add(textField);
getContentPane().add(new JTextField(), BorderLayout.PAGE_END);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
}
}
在输入顶部文本字段后,尝试将焦点切换到底部文本字段。