我想要的是用户只能在文本上输入小数,我不希望它允许文本输入为:
我一直在尝试使用VerifyListener,但是它只给了我一部分插入的文本,因此最终我遇到了要插入的文本和插入之前的文本,还尝试将文本合并,但是出现了问题当您删除键(退格键)时,我最终遇到了类似234[BACKSPACE] 455的字符串。
是否可以在将Text设置为Text之前在文本上设置Mask或成功将VerifyEvent与当前文本组合以获得“新文本”?
您将必须Listener
在Text
using 上添加一个SWT.Verify
。Listener
您可以在其中验证输入中仅包含十进制数字。
以下内容仅允许在文本字段中插入小数。每次您更改文本中的内容并拒绝它(如果不是十进制)时,它将检查该值。这将解决您的问题,因为在VerifyListener
插入新文本之前已执行。新文本必须通过侦听器才能被接受。
public static void main(String[] args) {
Display display = Display.getDefault();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
final Text textField = new Text(shell, SWT.BORDER);
textField.addVerifyListener(new VerifyListener() {
@Override
public void verifyText(VerifyEvent e) {
Text text = (Text)e.getSource();
// get old text and create new text by using the VerifyEvent.text
final String oldS = text.getText();
String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end);
boolean isFloat = true;
try
{
Float.parseFloat(newS);
}
catch(NumberFormatException ex)
{
isFloat = false;
}
System.out.println(newS);
if(!isFloat)
e.doit = false;
}
});
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
问题内容: 如何只允许在数字中使用而已? 问题答案: 基本思想是: 使用受控组件(使用值和输入字段的onChange属性),并在onChange句柄内部检查输入的值是否为正确的数字。仅当输入的值是有效数字时才更新状态。 为此使用此 正则表达式 : onChange处理程序将为: 工作示例:
我试图在JavaFX中创建一个只接受整数值的TextArea?有谁能给我一些建议,告诉我如何实现这一点吗?
问题内容: 如何将输入限制为文本框,使其仅接受数字和小数点? 问题答案: 这确实有效!
我一直在捕捉非数字时遇到问题。 我试过了,但抓不住。如果我让它捕获非数字,但不让用户再次尝试输入。。。它完全停止了我的代码。 这是我的密码:
问题内容: 有没有一种快速的方法来将HTML文本输入()设置为仅允许数字键击(加’。’)? 问题答案: 注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。 JavaScript 您可以使用以下功能过滤文本的输入值(支持CopyPaste,Drag+Drop,键盘快捷键,上下文菜单操作,不可键入的键,插入标记的位置,不同的键盘布局以及IE9以后的所有浏览器 : 现在,您可以使用
我正在使用我在网上找到的一篇文章中的JavaScript /AngularJS代码摘录。我对它做了一些调整,因为原始帖子在IE 11上不起作用,但除此之外,我正在使用我找到的它。这段代码允许您将Excel文件上传到jQuery数据表并读取。 我缺少一个要求,如果可能的话,我想寻求帮助。该要求是只允许上传Excel文件,没有其他类型的文件应该对用户“可见”。 这是我正在使用的代码: AngularJ