使用Unicode和Java限制TextArea

时间:2015-06-24 13:00:15

标签: java unicode

我有一个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); 
    }

1 个答案:

答案 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);
    }
}
}