美文网首页
JAVA SWING中JTextField限制只能输入数字

JAVA SWING中JTextField限制只能输入数字

作者: h080294 | 来源:发表于2020-03-12 16:45 被阅读0次

在Swing中,用JTextField创建输入框,对于输入的内容通常会有一定的限制。如何让JTextField限制只能输入数字呢?

在com.sun.deploy.panel找到一个不错的方法,也很简洁。原理也是使用PlainDocument,重载方法insertString(int var1, String var2, AttributeSet var3) throws BadLocationException

import java.awt.Toolkit;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class NumberDocument extends PlainDocument {
    public NumberDocument() {
    }

    public void insertString(int var1, String var2, AttributeSet var3) throws BadLocationException {
        if (this.isNumeric(var2)) {
            super.insertString(var1, var2, var3);
        } else {
            Toolkit.getDefaultToolkit().beep();
        }

    }

    private boolean isNumeric(String var1) {
        try {
            Long.valueOf(var1);
            return true;
        } catch (NumberFormatException var3) {
            return false;
        }
    }
}

使用的时候,调用JTextFile的setDocument将NumberDocument设置好就可以了。

        JTextField jtextField = new JTextField();
        jtextField.setDocument(new NumberDocument());

相关文章

网友评论

      本文标题:JAVA SWING中JTextField限制只能输入数字

      本文链接:https://www.haomeiwen.com/subject/ywfmjhtx.html