Java 如何在Swing中输入整数?
我有密码Java 如何在Swing中输入整数?,java,swing,integer,jtextfield,jformattedtextfield,Java,Swing,Integer,Jtextfield,Jformattedtextfield,我有密码 NumberFormat format = NumberFormat.getIntegerInstance(); format.setGroupingUsed(false); JFormattedTextField jtf = new JFormattedTextField(format); jtf.setValue(new Integer(0)); jtf.setColumns(10); 但当我在文本字段中输入字符时,它们会一直打印,直到
NumberFormat format = NumberFormat.getIntegerInstance();
format.setGroupingUsed(false);
JFormattedTextField jtf = new JFormattedTextField(format);
jtf.setValue(new Integer(0));
jtf.setColumns(10);
但当我在文本字段中输入字符时,它们会一直打印,直到我切换到另一个文本字段。我需要完全禁止字符输入,我的意思是,当输入字符时,我需要立即删除字符,或者在可能的情况下,使字符不会出现在听者的处理中,当然也不会出现在文本字段中。我的意思是只有数字字符才能出现。我找到了一个解决这个问题的方法,有可能是重复的
我为那个问题找到了一个可能重复的解决方案
我已经有一段时间没有在Swing上工作了,但我想你可以 创建您自己的文档并将其设置在JTextField上 然后,在文档对象中,您可以控制在用户键入字符时接受和拒绝哪些字符 以下是在文档上设置筛选器的示例:
我已经有一段时间没有在Swing上工作了,但我想你可以 创建您自己的文档并将其设置在JTextField上 然后,在文档对象中,您可以控制在用户键入字符时接受和拒绝哪些字符 以下是在文档上设置筛选器的示例:
我会使用配置了的。这是专门为整数输入而设计的,并且还提供了上/下箭头按钮的优点,可以用鼠标进行更改。我将使用配置了的。这是专门为整数输入而设计的,并且还提供了上/下箭头按钮的优点,可以用鼠标进行更改。为什么要在那里定义第二个名为
jtf
的JFormattedTextField
?您可能需要注册一个按键监听器来检查是否选中了该字段,以及是否选中了该字段,忽略无效字符的按键。因为输入整数总比不输入好。它在选择下一个联合特遣部队后(在输入的联合特遣部队未聚焦/未选择的字母从输入中消失后)删除非数字字符。什么?我不明白你在说什么。对不起,修好了。现在我明白你的意思了。你为什么要在那里定义第二个名为jtf
的JFormattedTextField
?你可能需要注册一个按键监听器来检查这个字段是否被选中,如果被选中,则忽略无效字符的按键。因为输入整数总比什么都没有好。它在选择下一个联合特遣部队后(在输入的联合特遣部队未聚焦/未选择的字母从输入中消失后)删除非数字字符。什么?我不明白你在说什么。对不起,修好了。现在我明白你的意思了。我需要没有箭头的文本框我需要没有箭头的文本框
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);