欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SWT Text控件输入指定范围数字

程序员文章站 2022-06-01 22:16:41
...

此方法允许Text内为空,避免无法回退修改。

private void setTextRange(Text text, int min, int max) {
		text.addVerifyListener(new VerifyListener() {
			@Override
			public void verifyText(VerifyEvent e) {
				Text text = (Text) e.getSource();
				final String oldStr = text.getText();
				String newStr = oldStr.substring(0, e.start) + e.text + oldStr.substring(e.end);
				boolean isValid = true;
				try {
					if (newStr.equals("")) {
						isValid = true;
					} else {
						int n = Integer.parseInt(newStr);
						if (n < min || n > max) {
							isValid = false;
						}
					}
				} catch (NumberFormatException ex) {
					isValid = false;
				}
				if (!isValid) {
					e.doit = false;
				}
			}
		});
	}