2017-01-20 3 views
-1

Je crée une interface graphique pour un projet mais je suis un débutant swing donc je évidemment eu des problèmes:Ajouter dynamiquement un panneau dans un SplitPanel

Mon AppFrame est formé par:

JFrame - > ContentPane -> SplitPane

Le composant splitpane left est utilisé pour un menu, le composant droit doit héberger différents JPane en fonction du bouton du menu. J'appuie sur le bouton "Produits"? Je souhaite voir MyProductsJPanel et ainsi de suite.

Le splitpane est créé et ajouté dans le constructeur Jframe, comment puis-je y accéder et le modifier au moment de l'exécution?

La configuration est-elle incorrecte? PS: J'utilise le plugin WindowBuilder pour eclipse, qui génère la plus grande partie du code bien sûr.

+2

Bienvenue sur Stack Overflow! Veuillez consulter notre [Liste de questions sur les questions de sécurité] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist) pour vous aider à poser une bonne question et obtenir ainsi une bonne réponse. –

+2

Vous avez besoin d'une sorte de référence au volet fractionné afin de pouvoir ajouter du contenu. Cela suggérerait que vous deviez passer une référence au menu, ou, pour une meilleure solution, que le menu génère des événements lorsque l'utilisateur sélectionne un menu qui notifie un contrôleur quelconque qui peut effectuer les mises à jour appropriées – MadProgrammer

+0

@MadProgrammer merci, j'ai résolu! La solution était plus simple que je ne le pensais: j'ai ajouté un écouteur d'événement sur le bouton de la souris qui modifie la bonne composition! –

Répondre

0

Ok, grâce à la contribution @MadProgrammer je suis en mesure de donner une solution:

Dans le constructeur JFrame j'ai ajouté un écouteur pour chaque bouton du menu. Dans l'auditeur:

public MouseClicked(MouseEvent arg0){ 
    splitPane.remove(splitPane.getRightComponent()); //Useless? 
    mySplitPane.setRightComponent(new OneOfMyButtonRelatedPane()); 
} 

Works et résoudre ma question