我怎么能做文本字段只接受字母"N或E"在Java?不接受数字和其他字符。
textField.textProperty().addListener((observable, oldValue, newValue) -> {
if (newValue.length() > 1) textField.setText(oldValue);
if (newValue.matches("[^\\d]")) return;
textField.setText(newValue.replaceAll("\\d*", ""));
});
我试过这个,这个对maxValue有用。但我需要文本字段只接受“N”和“E”字符。那么我该怎么做呢?
你可以试试这个。这只接受字符N
Pattern pattern = Pattern.compile("N");
UnaryOperator<TextFormatter.Change> filter = c -> {
if (pattern.matcher(c.getControlNewText()).matches()) {
return c ;
} else {
return null ;
}
};
TextFormatter<String> formatter = new TextFormatter<>(filter);
textField.setTextFormatter(formatter);
使用TextForey
。您可以修改或否决对文本的提议更改。此版本:
您的确切要求可能略有不同。请参阅TextFor质的Javadocs。更改
以获取更多详细信息。
import java.util.function.UnaryOperator;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.control.TextFormatter;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class NorETextField extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
TextField textField = new TextField();
UnaryOperator<TextFormatter.Change> filter = c -> {
if (c.getText().matches("[NnEe]")) {
c.setText(c.getText().toUpperCase());
c.setRange(0, textField.getText().length());
return c ;
} else if (c.getText().isEmpty()) {
return c ;
}
return null ;
};
textField.setTextFormatter(new TextFormatter<String>(filter));
BorderPane root = new BorderPane(textField);
Scene scene = new Scene(root, 400, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
代码可以很好地删除数字,但我不知道该使用什么regex,所以它也可以替换标点符号(例如`,!,],[等等) 有人能帮帮我吗?
问题内容: 我已经在netbeans注册中完成了一个示例项目。在jtextfield1中是用户ID,在Jtextfiled7中是国家/地区,两者都必须使用非数字字符或不允许的空格和特殊字符。怎么可能? 问题答案: @Vivek, 我对你问的这个问题有答案。请按照以下说明进行操作。 在Netbeans中,右键单击JTextfield,然后选择键入事件>> key >> key,然后在代码之间输入以下
我需要在Android上实现一个,它只接受特定范围的字符,即:“S、A、Q、W、R、B、C、D、E、U”。
本文向大家介绍如何限制UITextField在Swift中只接受数字?,包括了如何限制UITextField在Swift中只接受数字?的使用技巧和注意事项,需要的朋友参考一下 在iOS应用中,有时我们需要将文本字段限制为仅将数字作为输入,这可以通过多种方式完成,下面让我们来看一些。 方法1:从情节提要中更改文本字段类型。 选择要限制为数字输入的文本字段。 转到其属性检查器。 选择键盘类型,然后从中
家庭作业:寻找更好的策略或方法,而不是完整的代码。 当我试图确定这个问题的递归情况时,我完全被弄糊涂了。我必须编写一个接受整数参数“n”的方法,然后输出总共“n”个字符。根据原始整数是奇数还是偶数,中间字符应始终为“”或“*”。下面是两个不同的方法调用和输出应该是什么样子: 我该如何识别递归案例呢?
我是JAVA的新手,文本字段是否可以只接受数字输入?是否也有可能在代码内部有一个等式?例如:(毛额*10) 下面是我希望有数值输入的代码://Display private class Handler implements ActionListener{public void actionPerformed(ActionEvent e){