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

Agents de placement/Fenêtres Java Discussion :

Actualisé une JFrame par une autre.


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut Actualisé une JFrame par une autre.
    Bonjour à tous!

    Je suis débutant en interface graphique et j'ai un petit problème...

    J'ai plusieurs vue differentes et j'aimerais que lorsque je clique sur un bouton de la premiere vue la fenetre change et que la deuxieme vue apparaisse a la place de la premiere.

    Pour l'instant je n'ai pas trouve mieux que ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    frame1.setVisible(false);
    Majframe fen = new Majframe();
    fen.setVisible(true);
    Le problème est que c'est une nouvelle fenetre qui s'ouvre meme si l'autre disparait cela me pose pas mal de probleme (retour a la taille et la position initiale et surtout lag un peu ce qui rand pas super...)

    J'ai donc essayé de créer une méthode que j'ai mis dans la classe Majframe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public void changeFenetre (JFrame f)
    	{
    		this.removeAll();
    		Container c1 = getContentPane();
    		Container c2 = f.getContentPane();
    		c1 = c2;
    	}
    Mais cela ne rend pas du tout le resultat escompté (cela bug completement...)
    Quelqu'un voit-il une solution?
    Je lui en serait très reconnaissant en tout cas...

    Merci a tous ceux qui auront pris la peine de lire ce message et un encore plus grand à ceux qui m'aideront!!

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Tu peux plus simplement créer une seule JFrame et créer plusieurs JPanel, chacun correspondant à une de tes vues. Ensuite, quand tu veux changer de vue, tu fais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SwingUtilitis.invokeLater(new Runnable() {
    public void run() {
    maJFrame.setContentPane(monPanel);
    });
    Je ne suis pas sur que l'injection dans l'edt soit nécessaire, mais je pense que c'est préférable en tout cas. Bonne chance.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut Merci!
    Merci beaucoup!

    Effectivement ca m'a fait beaucoup avancé (au niveau de l'affichage c'est bon maintenant il n'y a plus photo avec avant!!).

    J'ai fait comme tu m'a dit puis je me suis appercu qu'il y avait en fait encore plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	public void changeFenetre (JFrame f)
    	{
    		this.setContentPane(f.getContentPane());
    	}


    Cependant j'ai tout de meme un petit probleme car contrairement au bidouillage que je faisais pour rendre la premiere fenetre invisible et faire apparaitre la seconde, ici il n'y a que l'affichage qui change... Ma fenetre 1 reste ma fenetre meme si elle s'affiche en la fenetre 2 du coup lorsque je clique sur le bouton de la fenetre1 ca marche parfait mais ensuite si je reclique sur un bouton de la fenetre avec le nouvel affichage la plus rien ne marche...

    En fait je voudrais que la premiere fenetre deviennent vraiment la seconde...
    J'ai essayé this = f mais comme je m'en doutais ca ne marche pas...Pourtant c'est vraiment cela que je veux...
    Je sens que j'y suis presque...

    Si quelqu'un voit...

    Encore merci en tout cas!

  4. #4
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Mais justement, le code que je t'ai donné devrait t'éviter de changer de JFrame, alors pourquoi veux tu absolument en changer ? Que veux tu clairement faire ? Merci.

  5. #5
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Salut,

    je pense que la seul chose que tu est a faire c'est d'avoir un paramètre qui stock le panel qui est affiché et lorsque tu click sur ton bouton en fonction de la valeur de se paramettre tu réajit de la bonne manière (suivant si c'est panel 1 ou panel 2 qui est affiché)

    ++

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut
    C'est normal que tu ne comprennes pas je me suis mal exprimé...Désolé.

    En fait je pensais ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    frame1.setVisible(false);
    Majframe fen = new Majframe();
    fen.setVisible(true);
    Serait pour mon programme strictement equivalent a celui ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	public void changeFenetre (JFrame f)
    	{
    		this.setContentPane(f.getContentPane());
    	}
     
    frame1.changeFenetre(new MaJframe());
    Or ce n'est pas le cas car en fait mon constructeur MaJframe prend des argument en parametres du coup ca fait buggé mon programme qui compte deja pret de 40 classes...(assez longues) du coup j'ai guere envie de tout remodifier...

    Pour etre précis je cherche un code qui soit stictement equivalent au premier code que j'ai mis plus haut ou l'on recrée une nouvelle fenêtre à la difference que je voudrais que l'utilisateur ne s'appercoit pas du "bidouillage" c'est a dire que s'il a déplacé la fenetre par exemple elle ne se remette pas a la place d'origine lorsqu'il va cliquer sur un bouton...(et surtout que ca ne laggue pas comme c'est le cas lorsqu'on utilise cette méthode...).

    J'espere avoir été assez clair...
    Ne maitrisant pas les interfaces graphiques, c'est assez difficile à expliquer...

    Merci pour votre aide en tout cas c'est vraiment sympa

Discussions similaires

  1. [JFrame] Basculer une JFrame sur un autre écran
    Par rno38 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 15/09/2009, 12h49
  2. Réponses: 2
    Dernier message: 18/06/2009, 16h09
  3. Réponses: 4
    Dernier message: 31/10/2007, 21h27
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48
  5. masquer une partie d'une vidéo par une banniere
    Par lezabour dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2006, 17h47

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