我有代码
NumberFormat format = NumberFormat.getIntegerInstance();
format.setGroupingUsed(false);
JFormattedTextField jtf = new JFormattedTextField(format);
jtf.setValue(new Integer(0));
jtf.setColumns(10);
但是当我在文本字段中输入字符时,它们会保持打印状态,直到我切换到另一个文本字段。我需要完全禁止字符输入,我的意思是当输入字符时,我需要立即删除或以某种方式使字符甚至不会出现在监听器处理中(如果可能的话),当然也不会出现在文本字段中。我的意思是只必须出现数字字符。
最佳答案
我在该问题的可能重复项中找到了解决方案 Restricting JTextField input to Integers
NumberFormat format = NumberFormat.getIntegerInstance();
format.setGroupingUsed(false);
NumberFormatter numberFormatter = new NumberFormatter(format);
numberFormatter.setValueClass(Long.class);
numberFormatter.setAllowsInvalid(false); //this is the key
JFormattedTextField jFormattedTextField = new JFormattedTextField(numberFormatter);
关于java - 如何在Swing中输入整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33830717/