Bonjour,
Pour regrouper des paramètres j'ai utilisé un mix de Jtable et de Jtree :


Comme on peut le voir dans le screen, j'utilise plusieur types de components dans la meme colonne: JTextField, JComboBox, JCheckBox.

Je souhaite utiliser des InputVerifier pour les JTextField devant contenir des entiers ou des flottants pour éviter que l'utilisateur rentre un chiffre non valide.

Par exemple ici pour un entier (sans exposant) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
JTextField jtxtInt = new JTextField(Integer.toString(
                            dataDef.GetIntValue()));
jtxtInt.setInputVerifier(new InputVerifier(){
 
                        @Override
                        public boolean verify( JComponent input ){
                            Pattern p = Pattern.compile("[+-]?\\d+");
                            Matcher m = p.matcher(((JTextField) input).getText());
                            if( m.lookingAt() && m.start() == 0 && m.end() ==  
(((JTextField) input).getText().length()) )
                                return true;
                            return false;
                        }
                    });
nodeAttr = new ModelControlValueNode(aVarnames[p], jtxtInt,
                                     (String) mapDic.get(aVarnames[p]));
Pour retourner l'editeur de cell j'utilise le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        comp = (Component) value;
 
        if (isSelected) {
            comp.setForeground(table.getSelectionForeground());
            comp.setBackground(table.getSelectionBackground());
        } else {
            comp.setForeground(table.getForeground());
            comp.setBackground(table.getBackground());
        }
 
        return comp;
    }
Or tout ceci ne fonctionne pas. Je peux rentrer "1A1B" par exemple et la valeur est acceptée malgré le fait que le code du Verifier est appelé.

Comment faire ce que je souhaite de manière propre ?
CaD: Empecher l'utilisateur de rentrer des float ou int non valide dans une colonne de jTable contenant des types de component différents.

Ca fait 1 mois que j'utilise Swing et je galère un peu... La seule solution qu'il ma était proposé (par google ) est de montrer un dialog avec mon verifier lors de l'edition ce que je trouve nul pour l'utilisateur.

Merci beaucoup pour vos conseils !!
-- Jeremy