Pattern p = Pattern.compile("^[0-9]{0,3}$");
Matcher m = p.matcher(in);
while (!m.find()) {
in = JOptionPane.showInputDialog(null, "Please only enter four integers:");
m = p.matcher(in);
}
// ...
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String in = JOptionPane.showInputDialog("Number: ");
if (in.matches("\\d{4}")) {
// ...Code to add the value to the textarea
} else {
JOptionPane.showMessageDialog(null, "Only 4 digits please.");
}
}
}
txtArea.textProperty().addListener((observable, oldValue, newValue) -> {
if(newValue.length()>3){
JOptionPane.showMessageDialog(null, " 4 integers please");
//Do whatever you need after the Alert is shown
txtArea.setText(oldValue);
}
});
3条答案
按热度按时间0g0grzrc1#
我不知道这段代码的上下文,但它不调用自定义异常。如果用户输入无效输入,只需使用循环来显示对话框:
还有,你想改变吗
if(m.find())
至if(!m.find())
否则,“请只输入四个整数:”对话框将仅在用户输入正确的整数数时显示。如果必须使用异常,只需创建一个扩展
Exception
班级:并在if语句中实现:
km0tfn4u2#
你可以简单地使用
in.matches("\\d{4}")
仅当此条件为true
.wlp8pajw3#
你提供的代码确实比需要的少。。
但是这里有一种方法,当你的
TextArea
超过3。让我们说你的
TextArea
被命名为txtArea
.