【发布时间】:2015-11-12 16:21:57
【问题描述】:
我想确保用户在 JavaFX 文本字段中输入有效的 IPv4 地址(0.0.0.0 到 255.255.255.255),但我似乎找不到任何有效的解决方案。
我用那个代码试过了:
private final TextField serverURI = new TextField();
final UnaryOperator<TextFormatter.Change> urlFilter = new UnaryOperator<TextFormatter.Change>() {
@Override
public TextFormatter.Change apply(TextFormatter.Change change) {
final String text = change.getText();
return (text.isEmpty() || text.matches("^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$")) ? change : null;
}
};
final TextFormatter<String> urlFormatter = new TextFormatter(urlFilter);
serverURI.setTextFormatter(urlFormatter);
但我什至不能输入一个数字......它似乎只适用于一个输入
【问题讨论】:
标签: java javafx ip textfield ipv4