[Résolu] Application avec multiples interfaces graphiques

Application avec multiples interfaces graphiques [Résolu] - Java - Programmation

Marsh Posté le 08-04-2007 à 15:55:36    

Bonjour,
 
je développe une application avec de nombreuses interfaces graphiques. Je veux dire, globalement, je n'ai qu'une fenêtre. Mais ce qu'elle contient, change beaucoup. Evidemment hein... genre un formulaire, puis une table, puis une liste, etc... Cependant, comment implémenter tout ça ?  
 
Je pensais créer différents JPanel pour chacune des interfaces, puis via le contrôleur, changer le panel de la fenêtre. Mais je sais pas si ça peut marcher, si c'est une bonne idée et s'il y a une meilleure manière de faire.
 
Merci d'avance pour vos réponses.
 
A+


Message édité par SatanKoRn le 12-04-2007 à 11:04:21

---------------
Matt
Reply

Marsh Posté le 08-04-2007 à 15:55:36   

Reply

Marsh Posté le 08-04-2007 à 16:09:50    

Tu as un layout fait exprès pour cette problématique :  
Le CardLayout : http://java.sun.com/docs/books/tut [...] /card.html
 
Tu déclenches le changement de cartes à l'aide d'une combo, d'onglets, de ce que tu veux en fait...
 
De toute façon tu as franchement intéret à séparer tes écrans différents dans ton code...sinon après c le bordel, même si des fois c'est  tentant de partager des comportements ou des morceaux d'interface...c'est ce qui me gène tjs avec Swing, je n'ai pas trouvé de moyen de partager du code simplement entre fenetre...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 08-04-2007 à 16:57:55    

Merci pour ta réponse rapide. J'ai compris le fonctionnement du CardLayout. Cependant, j'aimerais par exemple que quand tu es sur le premier panel et que tu cliques sur un bouton, tu passes au panel suivant. Donc ton bouton n'est plus là après. Or avec le CardLayout, ce ne serait pas trop ça. Mais je dois pouvoir adapter un peu pour que ça joue. Non ? :-S


---------------
Matt
Reply

Marsh Posté le 08-04-2007 à 17:06:05    

ben précisément, ton bouton ne doit pas être dans ton cardlayout...
 
en fait il faut que tu aies un JPanel "ecran" qui ait le CardLayout, et ce JPanel  doit lui même être dans un autre panel, qui contiendra donc le panel écran, mais aussi tes menus, le moyen de changer le panel affiché dans le cardLayout, etc...
 
c'est d'ailleurs ce qu'ils font dans l'exemple : le cardLayout est ajouté à un autre JPanel, qui lui a un BorderLayout


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 08-04-2007 à 17:07:45    

oui je comprends (je crois). Mais je n'ai pas envie d'avoir un bouton, ou une liste déroulante hors de l'écran. c'est comme si je voulais que l'écran entier change. Donc pas de bouton, pas de liste, pas de tab.


---------------
Matt
Reply

Marsh Posté le 08-04-2007 à 17:27:19    

heu la limite du card layout elle se voit pas hein...je comprends pas ton problème...
 
ou alors tu fais la chose suivante : tu réajoutes ton bouton à chaque "card"
 
et sinon quand tu as plusieurs écrans, une logique peut aussi être de faire que chaque écran amène au suivant (si c'est un workflow)


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 08-04-2007 à 20:38:57    

Quelque chose du genre fonctionnerait-il ?
 
 public void setPanelCentre(JPanel pan){
        panel_centre.removeAll();                
        panel_centre.add(pan);      
        panel_centre.revalidate();
    }
 
Ou est-il préférable d'utiliser le CardLayout ?


---------------
Matt
Reply

Marsh Posté le 08-04-2007 à 21:59:53    

ca devrait marcher sur le principe, après je sais pas si le cardLayout est pas optimisé pour gérer ça...
 
là je pense qu'il faut que tu testes :)


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 08-04-2007 à 23:17:30    

bin en fait, la deuxième méthode n'a pas l'air de marcher, ça fait planter mon appli :S
je testerai le CardLayout ;-)


---------------
Matt
Reply

Marsh Posté le 12-04-2007 à 11:03:42    

Le CardLayout fonctionne à merveille ! merci pour votre aide :-)


---------------
Matt
Reply

Marsh Posté le 12-04-2007 à 11:03:42   

Reply

Marsh Posté le 12-04-2007 à 11:54:11    

de rien :)


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 13-04-2007 à 00:01:13    

euh.. encore une question !
en fait, j'ai une fenêtre dans mon appli et quand je clique sur la petite croix pour fermer la fenêtre, j'ouvre un JOptionPane pour demander la confirmation de fermeture de la fenêtre. Le problème, c'est que quand je clique sur non, bin la fenêtre disparait (devient invisible je suppose). Mais comment faire en sorte qu'elle ne disparaisse pas ??


---------------
Matt
Reply

Marsh Posté le 13-04-2007 à 10:38:14    

heu, de mémoire quand tu fermes une fenêtre y'a un event qui est lancé...
 
http://java.sun.com/docs/books/tut [...] tener.html
 
par contre je sais pas comment ça interagit avec les trucs genre DISPOSE_ON_CLOSE, etc...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 13-04-2007 à 11:02:52    

Merci ! Tu m'as mis sur la bonne piste.
 
En fait, j'avais mon windowListener qui affichait la fenêtre de confirmation et voila.
 
Mais en effet, tu peux utiliser la méthode setDefautCloseOperation pour définir ce que tu fais quand tu fermes ta fenêtre. Et par défaut, c'est...... HIDE_ON_CLOSE ! Donc évidemment, même si le programme ne se termine pas, la fenêtre disparaît. Donc il suffit de rajouter un this.setDefautCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
et c'est réglé :)
 


---------------
Matt
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed