Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2348 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Passer d'une JFrame a une autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passer d'une JFrame a une autre

n°1547680
cafi
Posté le 23-04-2007 à 22:02:09  profilanswer
 

Bonjour,  
 
Je débute en interface et j'ai un petit problème.
J'aimerai passer une vue a une autre en cliquant sur un bouton de la premiere fenetre. C'est a dire j'ai deux frame instance d'une classe dérivé de JFrame. La premiere des deux frames possedent un bouton pour aller affficher la seconde.
 
Voici ce que j'ai fait :

Code :
  1. frame1.setVisible(false);
  2. MaJFrame fen = new MaJFrame();
  3. fen.setVisible(true);


 
Le problème est que j'ouvre une nouvelle fenetre en cachant l'ancienne du coup si j'ai déplacé la premiere je dois redeplacer la deuxième, or je ne le veux pas... Existe t-il une méthode pour y parvenir? J'ai regardé dans la javadoc mais je n'ai pas trouvé m'a t elle échappé ou n'existe t-elle pas? (ou y a t il un moyen simple d'y parvenir?)
 
Ceci m'aiderait beaucoup je m'excuse par avance s'il s'agit d'une question bête... Mais il faut bien un début à tout!  ;)  
 
Merci d'avance en tout cas

mood
Publicité
Posté le 23-04-2007 à 22:02:09  profilanswer
 

n°1547712
morphorpse
Posté le 23-04-2007 à 22:42:23  profilanswer
 

Bonsoir,
 
Tu veux faire quoi exactement ?
 
Un affichage en cascade ? ou lorsque tu cliques passer de la 1 à la 2 puis à la 1 ?

n°1547734
cafi
Posté le 23-04-2007 à 23:06:40  profilanswer
 

Et bien en fait je veux juste que lorsque je clique sur le bouton on passe a la 2.
C'est a dire mettre a jour la fenetre en quelque sorte mais avec la deuxieme fenetre.
 
Concretement quand on clique la deuxieme fenetre remplace la premiere. Du coup si on a redimensionné, ou déplacer la fenetre on voit la deuxieme fenetre mais la fenetre reste de la taille qu'on a choisi et a l'endroit qu'on a choisi...
 
J'espere avoir été plus clair...
 
Merci pour ton aide en tout cas!

n°1548620
cafi
Posté le 25-04-2007 à 12:39:50  profilanswer
 

Pensez vous qu'il existe une méthode pour faire cela (genre qui serait applicable a la premiere frame et prendrait en parametre la seconde meme si je ne pense pas que ce soit le cas car j'ai pas trouvé de tel méthode dans la javadoc). Sinon quelqu'un aurait il une petite idée d'une bidouille a faire pour que cela rende le même résultat?
 
Au cas ou je n'ai pas été assez clair plus haute je réexplique mon problème : j'ai deux vu differentes. Sur la premiere vu j'ai un bouton, j'aimerai que lorsqu'on clique sur ce bouton la fenetre courante (c'est a dire la vue1) se transforme en la vue 2. Sans avoir besoin de créer une nouvelle fenetre que l'on ouvrirait en rendant la fenetre1 invisible car cela pose problème si la fenetre a été redimensionné ou déplacé (ce qui est important pour le programme).
 
J'ai un projet a faire et c'est le seul truc qui déconne mais je ne trouve pas de façon de m'en sortir autrement que par le bout de code que j'ai is plus haut (qui ne fait donc pas ce que je veux)...
 
Si quelqu'un a une petite idée ca me serait vraiment très utile...
 
Merci d'avance! :)

n°1548658
unpierrot
Posté le 25-04-2007 à 14:17:16  profilanswer
 

tu sauvegardes les coordonnées de ta première fenêtre (position et taille) et tu les réappliques à la nouvelle fenêtre créée.

 

regarde la méthode setBounds(..) de la classe Window (package java.awt.Window)

 

pierrot


Message édité par unpierrot le 25-04-2007 à 14:17:34
n°1548867
cafi
Posté le 25-04-2007 à 21:26:41  profilanswer
 

Merci Pierrot! C'est une bonne idée je n'y avais pas pensé...
 
Si jamais quelqu'un voit une autre facon de faire qui ferait un peu moins "bidouillage" ca serait cool car si jamais mon prof voit ce bidouillage il risque de pas trop apprécié! En même temps on a eut un demi-cours en interfac graphique c'est vraiment dur de se débrouiller avec si peu...
 
Encore merci en tout cas! :)

n°1555080
cafi
Posté le 03-05-2007 à 21:56:33  profilanswer
 

Bonjour,
 
Ce problème est pas mal handicapant pour mon programme (ca le fait pas mal lagguer de relancer a chaque fois une nouvelle fenetre).
J'ai donc essayé plein de facons pour ne pas à avoir a rouvrir une nouvelle fenêtre a chaque fois mais je n'y parviens pas... Voici ma derniere méthode en date qui ne fonctionne pas.... (a noter que je suis dans une classe qui dérive de JFrame)
 

Code :
  1. public void changeFenetre (JFrame f)
  2. {
  3.  this.removeAll();
  4.  Container c1 = getContentPane();
  5.  Container c2 = f.getContentPane();
  6.  c1 = c2;
  7. }


 
En fait l'idéal serait de créer une méthode qui prendrait une fenetre en parametre, elle serait dans la classe de la premiere fenetre et lorsqu'on l'appelerait modifierait tous le contenu de la premiere par la deuxieme...
 
Est-ce possible?  
C'est le dernier petit hic dans mon programme ca m'aiderait vraiment beaucoup si quelqu'un a une idée ce serait super sympa...
 
Merci d'avance en tout cas!  :)

n°1876295
Torkoan
Posté le 22-04-2009 à 14:50:30  profilanswer
 

Je me permet de remonter ce topic car je bloque sur un programme similaire à celui ci.
J'ai une fenêtre possédant un bouton et un label (affichant "0" ).
L'objectif est, lors de l'appui sur le bouton, de créer une nouvelle fenêtre possédant les mêmes caractéristiques que l'ancienne, mais avec le texte du label incrémenté de 1 (la deuxième fenêtre affichera donc "1", la troisième "2", etc...), et de cacher ou fermer l'ancienne fenêtre.
 
Voici mon code pour l'instant :
 

Code :
  1. import javax.swing.JFrame;
  2. import javax.swing.JPanel;
  3. import javax.swing.JButton;
  4. import java.awt.*;
  5. import java.awt.event.*;
  6. import javax.swing.*;
  7. public class ptitefenetre extends JFrame implements ActionListener{
  8. private JButton bouton = new JButton("Clic" );
  9. private JLabel label = new JLabel();
  10. private String texte = "0";
  11. private Container contenu;
  12. public ptitefenetre(String texte){
  13.  this.setResizable(false);
  14.  this.setBounds(0, 0, 150, 200);
  15.  this.setVisible(true);
  16.  this.setTitle("Ptite fenêtre" );
  17.  contenu = getContentPane();
  18.  contenu.setLayout(new FlowLayout());
  19.  contenu.add(bouton);
  20.  label.setText(texte);
  21.  contenu.add(label);
  22.  bouton.addActionListener(this);
  23. }
  24. public void actionPerformed(ActionEvent e){
  25.  JButton source = (JButton) e.getSource();
  26.  int res;
  27.  if (source==bouton)
  28.  {
  29.   res = Integer.parseInt(texte)+1;
  30.   texte = String.valueOf(res);
  31.   ptitefenetre fen = new ptitefenetre(texte);
  32.   this.dispose();
  33.  }
  34. }
  35. }


 
A ce niveau là, j'arrive a passer de la première fenêtre (marquée "0" ) à la seconde (qui m'affiche correctement "1" ). Mais si je clique à nouveau, le label reste à "1"... Voici donc mon souci, si quelqu'un peut m'aider ^^
Merci

n°1876582
forumhardw​are
Posté le 23-04-2009 à 00:21:58  profilanswer
 

Pas testé :

Code :
  1. import javax.swing.JFrame;
  2. import javax.swing.JPanel;
  3. import javax.swing.JButton;
  4. import java.awt.*;
  5. import java.awt.event.*;
  6. import javax.swing.*;
  7. public class ptitefenetre extends JFrame implements ActionListener{
  8. private JButton bouton = new JButton("Clic" );
  9. private JLabel label = new JLabel();
  10. private String texte = "0";
  11. private Container contenu;
  12. public ptitefenetre(String texte, int res){
  13.  this.setResizable(false);
  14.  this.setBounds(0, 0, 150, 200);
  15.  this.setVisible(true);
  16.  this.setTitle("Ptite fenêtre" );
  17.  contenu = getContentPane();
  18.  contenu.setLayout(new FlowLayout());
  19.  contenu.add(bouton);
  20.  label.setText(texte);
  21.  contenu.add(label);
  22.  bouton.addActionListener(this);
  23. }
  24. public void actionPerformed(ActionEvent e){
  25.  JButton source = (JButton) e.getSource();
  26.  if (source==bouton)
  27.  {
  28.   res = Integer.parseInt(texte)+1;
  29.   texte = String.valueOf(res);
  30.   ptitefenetre fen = new ptitefenetre(texte, res+1);
  31.   this.dispose();
  32.  }
  33. }
  34. }


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Passer d'une JFrame a une autre

 

Sujets relatifs
[PHP] passer caractères accentués en majusculePasser un d'argument ??
[directX] comment passer du model space au screen space ?passer d'un fichier java a un autre
[C#][DirectX Managed] Passer en mode plein écranpasser de java à cpp
Passer un tableau ou une hash Perl à JavaScriptpasser un parametre avec un include
[RESOLU] Passer des infos d'une JDialog à une JFrame 
Plus de sujets relatifs à : Passer d'une JFrame a une autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR