IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

changer le contenu d'un jpanel dynamiquement


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut changer le contenu d'un jpanel dynamiquement
    Bonjour à tous , voici ma problématique .

    J'ai une classe principale qui contient 4 panels . Les 4 panels sont codés dans 4 classes externes.
    Panel 1 contient un menu qui permet de changer dynamiquement le Panel 2.

    Panel1 est une liste dans un Scroll Panel.
    Quand on clique sur une ligne différente dans Panel2 , le Panel2 affiche d'autres données.

    Je n'arrive pas trop à communiquer entre les 2 .
    J'ai placé un listener dans Panel1 que voici :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      private class lstRowListener implements ListSelectionListener {
     
          public void valueChanged(ListSelectionEvent evt) {
                if (evt.getValueIsAdjusting())
                    return;
                int idx = jlist.getSelectedIndex();
                log.debug("Selected Date "+ idx );
                ContextSingleton.getInstance().getParent().load(new Integer(idx).toString());
     
            }

    Pour communiquer entre les 2, j'ai fait un Singleton qui set au lancement du programme Panel2 dedans.


    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
    18
    19
    20
    21
    22
    23
    24
    25
    public class ContextSingleton {
     
     
          private MainPanel mainPanel = null;
     
          /** Creates a new instance of ContextSingleton */
          private static ContextSingleton instance = null;
     
     
          public static ContextSingleton getInstance() {
          if(instance == null) {
             instance = new ContextSingleton();
          }
          return instance;
       }
     
           public void setParent(MainPanel main) {
                mainPanel = main;
           }
     
            public MainPanel getParent() {
                return mainPanel;
           }
     
    }
    Et donc Panel2 dont voici le code :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    /**
     *
     * @author Administrateur
     */
        public class MainPanel extends javax.swing.JPanel {
     
        /** Creates new form MainPanel */
        public MainPanel() {
     
             initComponents();
             load("Titre1");
     
     
        }
     
     
        public void load(String title){
     
             BarChart bc = new jfreecharts.BarChart(title);
             ChartPanel chartPanel = new ChartPanel(bc.getChart());
             this.add(chartPanel, 0 );
     
        }
     
        @SuppressWarnings("unchecked")
        private void initComponents() {
        }
    Le code compile mais à l'execution j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "AWT-EventQueue-0" java.lang.IncompatibleClassChangeError: Expected static method panels.MainPanel.load(Ljava/lang/String;)V
    Or quand je place statique la fonction je ne peux pas, le this ne supporte pas.
    Peut être je m'y prend mal et c'est pas comme ça que je dois faire?

    Je pense que le souci est juste d'ajouter/editer un Panel de façon dynamique.merci de votre aide.

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Je ne vois pas d'où peut sortir cette erreur ; usuellement aux exceptions il y a un stacktrace qui donne la pile des appels de méthode avec la ligne concernée dans le source. Est-ce que avec ça tu peux retrouver la ligne en cause ?

    Concernant tes panneaux dynamiques, il devrait au moins se passer quelque chose avec ton code (je soupçonne qu'il y a une accumulation de panneaux dans le 2). À ce sujet, est-ce que tu vois des traces ?... et tant que ça ne marche pas, essaie de simplifier ton appli en utilisant des choses dont tu es sûr ; par exemple, au lieu d'un barchart, met juste un JLabel, et lorsque tu vois le JLabel, c'est que au moins la mécanique de choix fonctionne, tu peux passer au barchart.

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    Je n'ai pas regardé ton code... mais tu compiles comment ???

    Ce genre d'erreur survient lorsqu'on modifie une classe et qu'on fait une compilation incomplète : en gros lorsque tu ne recompiles pas les autres classes l'utilisant...

    Cela ne devrait pas arriver avec un EDI (dans le doute fait un clean+recompile), mais c'est très probable si tu compiles à la main classe par classe...

    a++

  4. #4
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    Du coup j'ai été me couché après le post , ce matin je lance le projet et ça marche...
    Manquait revalidate() et repaint() pour faire mieux mais plus d'erreur.
    Je compile avec netbeans (build + clean)...

    mystère je ne comprends pas moi même . merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Changer le contenu d'un tete dynamique
    Par Treuze dans le forum Flash
    Réponses: 4
    Dernier message: 03/06/2006, 00h01
  2. lire et changer le contenu d'texte.txt avec javascript?!
    Par Squalli dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/08/2005, 19h20
  3. [JTable] Changer le contenu d'une seule cellule
    Par terminagroo dans le forum Composants
    Réponses: 7
    Dernier message: 05/07/2005, 14h50
  4. TD changer le contenu
    Par C.M dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/02/2005, 14h51
  5. [Swing] Changer le contenu d'un Container via un menu
    Par TheSeb dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 08/12/2004, 00h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo