Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/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 JSpinner阻止字母插入_Java_Insertion_Jspinner_Letter - Fatal编程技术网

Java JSpinner阻止字母插入

Java JSpinner阻止字母插入,java,insertion,jspinner,letter,Java,Insertion,Jspinner,Letter,JSpinner用于在我的应用程序中存储一个数字(使用SpinnerNumberModel) 正如预期的那样,微调器不允许存储无效字符(字母、符号等)。但是,当我输入这些字符时,它们确实会出现在微调器组件中。一旦我将焦点切换到另一个组件,它们就会消失 有没有办法防止无效字符出现在微调器中?您可以在微调器的编辑器中添加DocumentFilter,以防止将不需要的字符添加到文档中。您可以使用如下代码获得编辑器: JTextField editor = ((JSpinner.DefaultEdito

JSpinner用于在我的应用程序中存储一个数字(使用SpinnerNumberModel)

正如预期的那样,微调器不允许存储无效字符(字母、符号等)。但是,当我输入这些字符时,它们确实会出现在微调器组件中。一旦我将焦点切换到另一个组件,它们就会消失


有没有办法防止无效字符出现在微调器中?

您可以在微调器的编辑器中添加DocumentFilter,以防止将不需要的字符添加到文档中。您可以使用如下代码获得编辑器:

JTextField editor = ((JSpinner.DefaultEditor)spinner.getEditor()).getTextField();

有关更多信息,请阅读Swing教程中的部分。

感谢您的回答,但是getEditor方法返回JComponent,而JComponent类中没有getTextField方法。我需要将返回的JComponent转换为其他组件吗?是的,需要转换。“JTextField编辑器=((JSpinner.DefaultEditor)spinner.getEditor()).getTextField()。你应该为将来的观众更新你的答案。