Passer méthode comme paramètre
Bonjour,
Je suis encore face à un problème !
Pour diminuer la quantité de lignes de code dans une classe, j'aimerais créer une méthode dont certains paramètres seront adaptés/changés à l'aide d'un switch case.
Ce qui implique (enfin, je pensais) de devoir passer une méthode en paramètre.
Je suis aller voir sur le net et j'ai trouvé quelque chose, mais ça ne fonctionne pas pour mon problème.
Voici une partie de mon code pour faciliter la compréhension:
Code:
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 30 31 32 33 34 35 36
| switch(listNr){
case 2:
test();
break;
case 3: test();
break;
case 4: test();
break;
}
private void test(String listName, Class classe, Methode methode, GraphicsConfiguration gConfig){
String shortListName = listName.substring(3); //permet d'enlever les 2 --
if(view==null){ //si le 'JFrame' est deja ouvert, il n'essaye plus de l'ouvrir
view = new Manage_jTabbedPaneMainBis(facade, gConfig);
if(ctb.getJPanelManageClients().isValid()==false){ //si le panneau est deja actif, il n'essaye plus de l'activer
view.getJTabbedPaneMain().addTab(shortListName, null, ctb.getJPanelManageClients(), BorderLayout.CENTER);
view.getJTabbedPaneMain().setSelectedComponent(ctb.getJPanelManageClients()); //permet d'activer l'onglet que l'on ajoute grace a un bouton
for(int i = 0; i < view.getJTabbedPaneMain().getTabCount(); i++){
view.getJTabbedPaneMain().setTabComponentAt(i, new ButtonTabComponent(view.getJTabbedPaneMain()));
}
}else{
//sinon rien
}
}else{
if(view.isVisible()==false) view.setVisible(true);
if(ctb.getJPanelManageClients().isValid()==false){ //si le panneau est deja actif, il n'essaye plus de l'activer
view.getJTabbedPaneMain().addTab(shortListName, null, ctb.getJPanelManageClients(), BorderLayout.CENTER);
view.getJTabbedPaneMain().setSelectedComponent(ctb.getJPanelManageClients()); //permet d'activer l'onglet que l'on ajoute grace a un bouton
for(int i = 0; i < view.getJTabbedPaneMain().getTabCount(); i++){
view.getJTabbedPaneMain().setTabComponentAt(i, new ButtonTabComponent(view.getJTabbedPaneMain()));
}
}else{
//sinon rien
}
}
} |
Bien sûr, dans l'appel de la méthode 'test' du switch case, je dois y inclure les paramètres ad hoc.
Et dans la méthode 'test', le paramètre 'methode' dois remplacer la méthode 'getJPanelManageClients()'.
Est-ce que ma démarche est possible (j'espère avoir été assez clair ) !
PS: la méthode test(), permet d'ouvrir des JTabbedPane
Merci d'avance.
Marc