Java 确认JTextField是否包含值0.5-1?
我研究了Java 确认JTextField是否包含值0.5-1?,java,swing,jtextfield,Java,Swing,Jtextfield,我研究了JTextField中输入的验证,但从我所看到的,只能验证输入是字符串、整数还是数字。有人能建议我如何验证数字的具体值吗?例如,它是否在范围0.5-1内。谢谢。一种方法是将Textfield的值解析为如下所示的浮点值 float tfValue = Float.parseFloat(jTextField1.getText()); 然后你可以检查模1是否等于0。如果为true,则该值为整数 if (tfValue % 1 == 0) { System.o
JTextField
中输入的验证,但从我所看到的,只能验证输入是字符串
、整数
还是数字
。有人能建议我如何验证数字的具体值吗?例如,它是否在范围0.5-1
内。谢谢。一种方法是将Textfield的值解析为如下所示的浮点值
float tfValue = Float.parseFloat(jTextField1.getText());
然后你可以检查模1是否等于0。如果为true,则该值为整数
if (tfValue % 1 == 0) {
System.out.println("is an integer");
}
else System.out.println("is a float");
试试这个,也许对你有帮助
JTextField field = new JTextField();
field.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
String text = ((JTextField)evt.getSource()).getText();
if (!(evt.getKeyChar() >= '0' && evt.getKeyChar() <= '9')) {
// it is number
}
else if (!(evt.getKeyChar() >= 'a' && evt.getKeyChar() <= 'Z')) {
// it is char a-Z
}
else {
// it others
}
}
});
JTextField=newjtextfield();
field.addKeyListener(新java.awt.event.KeyAdapter(){
public void keyTyped(java.awt.event.KeyEvent evt){
字符串文本=((JTextField)evt.getSource()).getText();
如果(!(evt.getKeyChar()>='0'和&evt.getKeyChar()='a'和&evt.getKeyChar()两种可能的方式:
将JTextField的内容解析为双变量,并使用简单的if语句。
您应该使用try-catch块来处理可能的NumberFormatException(如果您的文本无法转换为double)
例如:
double value = 0;
try {
value = Double.parseDouble (yourTextField.getText ());
}
catch (NumberFormatException e) {
// Handle exception ...
}
if (value >= 0.5 && value <= 1) {
// ...
}
else {
// ...
}
看一看,这有助于解释如何使用它。谢谢,这将帮助我我希望SpinnerModel model=new SpinnerNumberModel(.5,5,1,01);JSpinner numberRange=new JSpinner(model);
如果字符串
从JTextField.getText()返回
包含除数字以外的任何内容,解析将返回一个NumberFormatException
。如果要使用此方法,则需要在解析之前使用正则表达式。通常,您不会侦听文本组件上的原始键/鼠标事件,而是侦听底层文档。@Abihabi 87我需要特别进行某种排序确认用户输入值在0.5到1之间,如果不是这样,请不要让他离开further@Mapet听到这个消息我很高兴。请考虑接受我的回答:
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.4")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0..5")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.111")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.5")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.5000543")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.50+")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "1.0")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "1.0000")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "1")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "21")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", ".56256")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", ".46256")); // -> false