Swing配置JTextField只能接受数字吗?

Ren*_*ani -1 java swing numbers mask

可能重复:
有没有办法只接受JTextField中的数值?

Swing的JTextField上有任何功能只允许在一系列数字中使用正数吗?

示例:我只能输入10到30之间的数字.此范围之外的数字甚至不会出现在字段中.

And*_*son 12

使用JSpinnerSpinnerNumberModel-最终用户会感谢你.好吧,不是字面意思,但至少他们不会诅咒你的名字,因为他们强迫他们输入他们想要用箭头键选择的东西.

例如

import javax.swing.*;

class NumberChooser {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                SpinnerNumberModel numberModel = new SpinnerNumberModel(
                    new Integer(15), // value
                    new Integer(10), // min
                    new Integer(30), // max
                    new Integer(1) // step
                    );
                JSpinner numberChooser = new JSpinner(numberModel);
                JOptionPane.showMessageDialog(null, numberChooser);
                System.out.println("Number: " + numberChooser.getValue());
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)