Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Swing中输入整数?_Java_Swing_Integer_Jtextfield_Jformattedtextfield - Fatal编程技术网

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);