Java 将字母替换为数字,作为用户在JTextField中键入的内容

Java 将字母替换为数字,作为用户在JTextField中键入的内容,java,swing,jtextfield,Java,Swing,Jtextfield,我有一个JTextField供用户输入序列号。序列号的形式是不包含字母I、O或S,因为它们看起来类似于1、0和5。正确的方法是什么?如果用户键入其中一个字母,它会输入数字? e、 g.用户键入AaOo0,并将其作为Aa000 为了澄清,这应该在用户键入每个字符时发生,而不是在用户完成键入并离开文本字段后发生。使用 比如: AbstractDocument doc = (AbstractDocument)jtextField.getDocument(); doc.setDocumentFilter

我有一个JTextField供用户输入序列号。序列号的形式是不包含字母I、O或S,因为它们看起来类似于1、0和5。正确的方法是什么?如果用户键入其中一个字母,它会输入数字?
e、 g.用户键入
AaOo0
,并将其作为
Aa000

为了澄清,这应该在用户键入每个字符时发生,而不是在用户完成键入并离开文本字段后发生。

使用

比如:

AbstractDocument doc = (AbstractDocument)jtextField.getDocument();
doc.setDocumentFilter(yourImplementationOfDocumentFilterWhichChangeOto0OnInsertAndReplace);

老兄,这比我那蹩脚的基于侦听器的解决方案好多了+有趣的是,我从来都不知道这个解决方案。我只见过创建AbstractDocument子类进行过滤的解决方案。你的方法高明得多(更清楚地表达了意图)