我有一个TextArea,我试图限制用户输入以仅允许该区域中的IP地址格式。所以我想到只允许数字和小数点。对于多个IP,每行一个IP,因此TextArea需要接受新行。除了删除之外,我在下面的工作大部分都在工作。即使我使用关联Unicode,我也无法删除任何条目。我正在运行MAC OS 10,不确定它是否有任何区别但是信息出现以防万一。
public class RestrictIpInputTextArea extends TextArea {
@Override
public void replaceText(int i, int il, String string){
if(string.matches("[0-9_\\u000A_\\u232B_\\u0008_\\u2421_._\\u007F]") || string.isEmpty()){
super.replaceText(il, il, string);
}
}
@Override
public void replaceSelection(String string) {
super.replaceSelection(string);
}
答案 0 :(得分:0)
我能够找到解决方案。请访问以下链接以获取更多参考。 http://docs.oracle.com/javafx/2/ui_controls/custom.htm 但是,我仍然想探索在JavaFX 8U40中部署的TextFormatter函数
public class numericValue extends TextArea {
@Override
public void replaceText(int start, int end, String text) {
String old = getText();
if (text.matches("[0-9_._\\u000A]*")) {
super.replaceText(start, end, text);
}
}
@Override
public void replaceSelection(String text) {
String old = getText();
if (text.matches("[0-9_._\\u000A]*")) {
super.replaceSelection(text);
}
}
}