gpt4 book ai didi

java - 如何限制文本字段只能输入数字和小数?

转载 作者:行者123 更新时间:2023-12-02 02:18:47 27 4
gpt4 key购买 nike

我想控制 jtextfield 上的用户输入文本。看来我在netbean 8中找不到任何好方法。在C#中使用keypress event ,但是在 java我是新人。

我选择key type Activity

我只想输入小数点后两位数字

10.00
1224547885544.12
545545464646464646465466.10

不是

12121212.654654654654

我已经尝试过

                 // not a good idea

char c=evt.getKeyChar();
if((Character.isDigit(c))||(c==KeyEvent.VK_PERIOD)||(c==KeyEvent.VK_BACK_SPACE)){
int punto=0;
if(c==KeyEvent.VK_PERIOD){
String s=pricefield.getText();
int dot=s.indexOf('.');
punto=dot;
if(dot!=-1){
getToolkit().beep();
evt.consume();
}
}
}
else{
getToolkit().beep();
evt.consume();
}

//second try

char enter = evt.getKeyChar();
if(!(Character.isDigit(enter))){
evt.consume();
}

我认为这不是个好主意。

尝试其他多种方法。

请帮帮我。

最佳答案

假设您引用的是 JavaFX TextField:

您可以通过调用textField.textProperty()来获取文本字段的textProperty。由于这是一个属性,因此您可以为其附加一个监听器,以监听字段中文本的更改:

textField.textProperty().addListener((observable, oldValue, newValue) -> {
// this code is called whenever the text in the field changes
// oldValue is the text contained before the event was triggered
// newValue is the text that the field is about to be set to

if (oldValue.contains("[a-zA-Z]")) { // any predicate you want/need
textField.setText(oldValue); // revert the text of the field back to its old value
}
});

关于java - 如何限制文本字段只能输入数字和小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com