Test sue les cellule de la JTable

saratsdi Messages postés 23 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 27 avril 2011 - 11 mars 2008 à 17:04
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 - 13 mars 2008 à 11:49
salut tous le monde
si vous pouvez m'aider je veux faire le test sur les cellules de la JTable
s'il sont vide je veux qu'il m'affiche un message
et merci d'avance

7 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
11 mars 2008 à 19:19
Salut:

Je n'ai pas bien saisi ce que tu veux faire.

Est ce que tu veux afficher la chaîne de caractères "Vide" dans les cellules vides par exemple ?

Cordialement ...
0
Utilisateur anonyme
12 mars 2008 à 06:49
Modifie l'objet responsable du rendu de ta JTable de façon à ce qu'il affiche "vide" ou bien ce que tu veux quand il n'a pas de donnée (null).

jTable.setDefaultRenderer(columnClass,new DefaultCellRenderer(){

Component
,
getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
                              int column)

{
               JLabel label = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
               if(value==null)
                      label.setText("VIDE");
               return( label );
}

});

0
Utilisateur anonyme
12 mars 2008 à 06:51
jTable.setDefaultRenderer(Object.class,new DefaultCellRenderer(){
Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row, int column)
{
               JLabel label = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
               if(value==null)
                      label.setText("VIDE");
               return( label );
}

});

0
saratsdi Messages postés 23 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 27 avril 2011
12 mars 2008 à 10:20
je voudrais dire quand l'utilisateur saisi sur la table il doi remplir toutes les cellules de la ligne,et s'il a oublie une vide le programme l'affiche un message
alors je veux savoir comment faire ce test
c clair ma question?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KenZara Messages postés 112 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 20 décembre 2011
12 mars 2008 à 14:01
Bonjour,

Euh tu fais ce que t'as proposé gouessej et au lieu de mettre labet.setText("Vide"), tu mets l'alerte ....
Allez un peu d'effort :)

Kenza
0
Utilisateur anonyme
12 mars 2008 à 19:10
Le plus simple est de vérifier si une des cellules n'est pas remplie quand l'utilisateur clique sur un bouton pour confirmer. Il suffit alors d'utiliser la méthode getValueAt(int row,int column) et de vérifier si elle renvoie null une fois. Tu peux faire ce test à un autre moment si tu préfères, quand ta JTable perd le focus par exemple, ou bien quand l'utilisateur commence à remplir une autre ligne. KenZara a raison, tu pourrais te donner la peine de chercher un peu, va voir la documentation Java :
http://java.sun.com/javase/6/docs/api/

C'est en se confrontant aux difficultés qu'on progresse.

0
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
13 mars 2008 à 11:49
En plus, pour faire ressortir les champs "oubliés", on pourrait les colorer:

       jTable1 = new javax.swing.JTable(){
            public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
                Component c = super.prepareRenderer(renderer, row, column);
                boolean focused = isRowSelected(row) && isColumnSelected(column);
                if(!focused){
                    c.setBackground(Color.WHITE);
                }
                for (int i = 0; i < jTable1.getRowCount(); i++) {
                    for (int j = 0; j < jTable1.getColumnCount(); j++) {
                        Object val = jTable1.getValueAt(row, column);
                        if( val == null || val.toString().equals("") ){
                            if(!focused){
                                c.setBackground(Color.RED);
                            }
                        }
                    }
                }
                return c;
            }

        };
0
Rejoignez-nous