Bonjour,
J'ai un problème assez compliqué tant à résoudre, qu'à expliqué, je vais donc essayer d'être le plus clair possible (et merci d'avance à ceux qui auront lu et essayer de comprendre).
J'ai une JFrame MainFrame divisée en deux par un JSplitPane, donnant ainsi deux panels : PanelNavigation et ActionPanel.
PanelNavigation est composé de boutons permettant de naviguer dans l'application. En cliquant sur un des boutons, cela appelle une méthode qui met à jour ActionPanel.
PanelNavigation est aussi composé d'un autre panel, placé entre les boutons, jPanelTableau contenant 2 tableaux. Ce sont ces deux tableaux qui me posent problème.
En effet, les données à afficher dans ces tableaux ne peuvent être obtenu qu'après avoir obtenu une variable, que l'utilisateur sélectionne
dans un certain écran de l'application (ne quittez pas, un exemple suit!).
Pour mieux comprendre le raisonnement voilà un petit exemple :
Imaginons que l'application permette de gérer un garage. A droite de l'application se trouve donc le PanelNavigation avec les boutons Clients, Réparations, Constructeur, Salariés etc etc. En cliquant sur le bouton Réparation, l'ActionPanel se met à jour avec un panel composé de boutons. A chaque boutons correspond une année travaillée (2007/2008;2008/2009;2009/2010 etc etc). C'est en cliquant sur un de ces boutons que la variable nécessaire (l'année donc) à la récupération des données pour les tableaux, est récupérée. Ce n'est donc qu'à ce moment que l'on peut remplir et afficher les tableaux dans PanelNavigation. Et c'est donc la mon soucis.
Pour faire cela j'ai essayé en faisant ainsi :
.J'ai déclaré et ajouté mon jPanelTableau (variable static) dans PanelNavigation (donc dés le lancement de l'application). Il est donc vide au ancement de l'application.
.Je l'ai rendus non visible.
.Dans PanelNavigation J'ai créé une méthode static nommée initJTableau donc voici le code
.J'ai créé une classe JPanelTableauxDonnees contenant les deux tableaux, et demandant en paramètre une année (choisi donc par l'utilisateur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public static void initJTableau(JPanel panelTableau){ jPanelTableau= panelTableau; jPanelTableau.setVisible(true); }
Le constructeur de cette classe permet dans un premier temps d'initialiser les tableaux et dans un second temps fait appel à la fonction initJTableau de la classe PanelNavigation (décrite juste au dessus).
.Enfin, dans l'actionListener des boutons contenant les années (permettant de sélectionner les données à afficher dans les tableaux), je créé une nouvelle instance de JPanelTableuxDonnees.
Mon problème est que je n'arrive pas à mettre à jour mon PanelNavigation(impossible d'appeler les méthodes repaint(), revalidate()... dans la méthode initJTableau qui est une méthode static).
J'aimerais donc savoir si mon raisonnement est bon, et si oui ou même non, comment puis je parvenir à mes fins.
Encore une fois un merci à ceux qui auront lu ce topic jusqu'au bout et un énorme merci à ceux qui essaieront de m'aider
Bonne journée.
Partager