Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2496 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Comparaison des éléments d'un JPanel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparaison des éléments d'un JPanel

n°1793971
rvhp
Posté le 30-09-2008 à 17:22:40  profilanswer
 

Bonjour à tous,
J'ai un problème dont voici l'énoncé ... Je souhaite parcourir une classe (un JPanel dans mon cas) qui contient des Fields, d'autres JPanel qui contiennent eux même des JTextField, JComboBox, ...
 
Le but est simple, comment prendre une photocopie d'une classe à un instant donné, en pouvoir déterminer plus tard si des champs ont étés modifiés.
 
Quelqu'un a-t-il un bout de code qui pourrait me mettre sur la voie ?

mood
Publicité
Posté le 30-09-2008 à 17:22:40  profilanswer
 

n°1794025
zapan666
Tout est relatif
Posté le 30-09-2008 à 20:08:50  profilanswer
 

Tu fais un Listener sur tes champs, dès qu'un champ est modifié, ça notifie ta class qu'un champ est modifié.
ex : ChangeListener ou quelque chose comme ça


Message édité par zapan666 le 30-09-2008 à 20:09:13

---------------
my flick r - Just Tab it !
n°1794220
rvhp
Posté le 01-10-2008 à 10:04:30  profilanswer
 

Oui bien sur, mais il faut voir ça comme un principe réutilisable sur d'autres classes. De plus, j'en ai qq une avec plus d'une trentaine de champs ... et je ne te parle pas des JComponent ajouté par d'autres membres de l'équipe qui oubliront les listeners ...

n°1794368
zapan666
Tout est relatif
Posté le 01-10-2008 à 12:46:49  profilanswer
 

Tu passe par une factory qui ajoute les listeners a la création alors.
 


---------------
my flick r - Just Tab it !
n°1794536
rvhp
Posté le 01-10-2008 à 18:03:31  profilanswer
 

Voici en fait un début de code de ce que je voulais faire  

Code :
  1. public void instanceOf(JComponent component) {       
  2.         for (int i=0;i<component.getComponentCount();i++) {
  3.             System.out.print(component.getComponent(i).getClass().getName());
  4.             if (component.getComponent(i) instanceof javax.swing.text.JTextComponent) { // Tous les champs textes
  5.                 System.out.println(" Valeur="+((javax.swing.text.JTextComponent)component.getComponent(i)).getText());
  6.                 continue;
  7.             }
  8.             if (component.getComponent(i) instanceof JComboBox) {
  9.                 System.out.println(" Valeur="+((JComboBox)component.getComponent(i)).getSelectedIndex());
  10.                 continue;
  11.             }
  12.             if (component.getComponent(i) instanceof JList) {
  13.                 System.out.println(" Valeur="+((JList)component.getComponent(i)).getSelectedIndex());
  14.                 continue;
  15.             }
  16.             if (component.getComponent(i) instanceof JTable) {
  17.                 System.out.println(" Valeur="+((JTable)component.getComponent(i)).getSelectedRow());
  18.                 continue;
  19.             }
  20.             if (component.getComponent(i) instanceof JLabel) {
  21.                 System.out.println(" Valeur="+((JLabel)component.getComponent(i)).getText());
  22.                 continue;
  23.             }
  24.             if (component.getComponent(i) instanceof AbstractButton) { // JButton, JCheckBox et JRadioButton
  25.                 System.out.println(" Valeur="+((AbstractButton)component.getComponent(i)).getText()+"/"+((AbstractButton)component.getComponent(i)).isSelected());
  26.                 continue;
  27.             }
  28.             if (component.getComponent(i) instanceof JPanel ||
  29.                 component.getComponent(i) instanceof JTabbedPane ||
  30.                 component.getComponent(i) instanceof Box ||
  31.                 component.getComponent(i) instanceof JViewport ||
  32.                 component.getComponent(i) instanceof JScrollPane) { // Les conteneurs
  33.                
  34.                 System.out.println("" );
  35.                 instanceOf((JComponent)component.getComponent(i));
  36.             }
  37.             else {
  38.                 System.out.println(" Valeur="+(component.getComponent(i)));
  39.             }
  40.         }
  41.     }


 
Cette méthode balaye tous les composants d'un composant donné (un JPanel par exemple) et affiche la valeur de chaque JComponent.
J'y trouve trois problèmes :

  • Comment reconnaitre les JComponent qui sont des conteneurs (pour ne par avoir des tests JPanel || JScrollPane, ...
  • N'y a-t-il pas plus simple de connaitre la valeur d'un JComponent que de tester son type, puis appliquer la bonne méthode ?  
  • Est-il possible de connaitre le nom de la variable de classe du JComponent ?



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Comparaison des éléments d'un JPanel

 

Sujets relatifs
[Java] border d'un JPanel : problème d'affichage[Résolu]Petite question trés simple pour comparaison entre deux chaine
Comparaison et numeric_limitsAfficher Background puis éléments de la page!
comparaison heure[Résolu] Comparaison Groupe de Fichiers
Mettre un JPanel au premier plan[EXCEL] Comparaison bornée
[VBA] Recherche dans les éléments d'une listeSomme d'elements de differentes tables
Plus de sujets relatifs à : Comparaison des éléments d'un JPanel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR