限制Java中的文本字段

Luk*_*uke 4 java swing

有没有办法将文本字段限制为只允许数字0-100,从而排除字母,符号等?我找到了一种方法,但它似乎比看起来更复杂.

Mar*_*ark 10

如果必须使用文本字段,则应使用带有NumberFormatter的JFormattedTextField.您可以设置NumberFormatter上允许的最小值和最大值.

NumberFormatter nf = new NumberFormatter();
nf.setValueClass(Integer.class);
nf.setMinimum(new Integer(0));
nf.setMaximum(new Integer(100));

JFormattedTextField field = new JFormattedTextField(nf);
Run Code Online (Sandbox Code Playgroud)

但是,如果适合您的使用案例,Johannes建议使用JSpinner也是合适的.


Joe*_*oey 5

我建议你应该在这种情况下使用JSpinner.在Swing中使用文本字段非常复杂,因为即使是最基本的单行文档也有一个完整的Document类.