Il est possible dans Swing de configurer un JTextField pour n'accepter que des nombres? [dupliquer]

possibilité de dupliquer:

y a-t-il un moyen d'accepter uniquement les valeurs numériques dans un champ Jtext?

y a-t-il des fonctionnalités sur le champ Jtext de Swing qui ne permettent que des nombres positifs à l'intérieur d'une plage de nombres?

exemple: Je ne peux entrer que des nombres entre 10 et 30. Les nombres hors de cette plage n'apparaîtront même pas sur le terrain.

0
demandé sur Community 2011-05-24 17:14:46
la source

2 ответов

Utiliser un JSpinner avec un SpinnerNumberModel - l'utilisateur final vous remercie. OK pas littéralement, mais au moins ils ne maudiront pas votre nom pour les forcer à taper quelque chose qu'ils aimeraient choisir en utilisant les touches fléchées.

E. G.

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());
            }
        });
    }
}
12
répondu Andrew Thompson 2011-05-24 17:36:43
la source

créer un personnalisé classes de l'extension de PlainDocument

public class NumericDocument extends PlainDocument

dans la présente classe, remplacer la trame d'insertion. Beaucoup d'exemples en ligne qui utilisent le caractère.méthode isDigit pour vérifier chaque valeur entrée pour vérifier si numérique ou non.

Le lors de votre création vous component swing jtextfield le faire à l'aide de la

JTextField numericTextOnlyField = new JTextField(new NumericDocument())

dans la méthode insertString vous pouvez vérifier pour voir les valeurs insérées sont dans la gamme que vous autorisez

0
répondu cduggan 2011-05-24 17:26:02
la source

Autres questions sur