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

  FORUM HardWare.fr
  Programmation
  Java

  execution interface graphique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

execution interface graphique

n°1228838
rayley
Posté le 22-10-2005 à 20:29:29  profilanswer
 

Bonjour,
J'ai créé une interface graphique sous java. Je résume rapidement mon inteface. Donc j'ai une fenetre, qd j'appuie sur le bouton entrez j'arrive sur une deuxieme page. Qd j'appuie sur annulez je reviens à la première page. A première vue mon interface marche correctemment. Mais en fait quand j'appuie plusieurs fois de suite sur entrez puis annulez mon application ralenti. J'ai remarqué qu'a force d'appuyer sur ces boutons mon code au lieu de s'executer une fois, il s'exécute plusieurs fois et ca va exponentiellement. Ca fait pas mal de temps que je suis dessus et je vois pas d'où ca peut venir. Pour etre plus explicit je vous joins mon code ( je sais pas si ca se fait  :ange: ).
En tout cas merci d' avance
 

Code :
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. public class test extends JFrame
  5. {
  6. private Frame f = new Frame();
  7. private JPanel promo = new JPanel();
  8. private JPanel logo = new JPanel();
  9. private JPanel ppal = new JPanel();
  10.    
  11. private JLabel acc = new JLabel ("Bienvenue dans un autre monde" );
  12. private JLabel sel = new JLabel ("Faites votre sélection" );
  13. private JButton entree= new JButton ("Entrez" );
  14. private JButton prepayee= new JButton ("Rouge" );
  15. private JButton recharge= new JButton ("Blanc" );
  16. private JButton annule= new JButton ("Annulez" );
  17. public void Fenetre()
  18. {       
  19.         f.setLayout(new BorderLayout());
  20.         promo.setLayout(new FlowLayout(FlowLayout.CENTER,1152,75));
  21.         promo.setBackground(new Color(8, 153, 0));
  22.         logo.setLayout(new FlowLayout(FlowLayout.CENTER,75,864));
  23.         logo.setBackground(new Color(8, 153, 0));
  24.         GridBagLayout repartiteur = new GridBagLayout();
  25.         GridBagConstraints contraintes;
  26.         ppal.setLayout(repartiteur);
  27.      ppal.setBackground(Color.BLACK);
  28.      contraintes = new GridBagConstraints();
  29.  contraintes.gridwidth = GridBagConstraints.REMAINDER;
  30.  contraintes.anchor = GridBagConstraints.NORTH;
  31.  contraintes.ipady = 50;
  32.  repartiteur.setConstraints(acc, contraintes);
  33.  acc.setFont(new java.awt.Font("Times", 0, 50));
  34.  acc.setForeground(Color.RED);
  35.  ppal.add(acc);
  36.    
  37.  contraintes = new GridBagConstraints();
  38.  contraintes.anchor = GridBagConstraints.CENTER;
  39.  repartiteur.setConstraints(entree, contraintes);
  40.  entree.setForeground(Color.RED);
  41.  ppal.add(entree);
  42.        
  43.         f.add(promo,BorderLayout.NORTH);
  44.         f.add(logo,BorderLayout.EAST);
  45.         f.add(ppal,BorderLayout.CENTER);
  46.         f.setSize(1152, 864);
  47.         f.setVisible(true);
  48.         entree.addActionListener(new ActionListener()
  49.         {
  50.          public void actionPerformed(ActionEvent event)
  51.             {
  52.              System.out.println("appuyé sur entrez" );
  53.              ppal.removeAll();
  54.              ppal.repaint();
  55.              Selection();
  56.             }
  57.         });
  58. }
  59. protected void Selection()
  60. {
  61.  ppal.setLayout(null);
  62.  sel.setFont(new java.awt.Font("Times", 0, 50));
  63.  sel.setForeground(Color.RED);
  64.  sel.setBounds(250,10,1000,60);
  65.  ppal.add(sel);
  66.  recharge.setBounds(300,300,150,50);
  67.  ppal.add(recharge);
  68.  prepayee.setBounds(550,300,150,50);
  69.  ppal.add(prepayee);
  70.  f.setVisible(true);
  71.  annule.setBounds(890,640,80,25);
  72.  ppal.add(annule);
  73.  annule.addActionListener(new ActionListener()
  74.  {
  75.   public void actionPerformed(ActionEvent event)
  76.      {
  77.       System.out.println("appuyé sur annule" );
  78.       ppal.removeAll();
  79.       ppal.repaint();
  80.       Fenetre();
  81.      }
  82.  });
  83. }
  84. public static void main(String[] argv)
  85. {
  86.  test f = new test();
  87.  f.Fenetre();
  88.  System.out.println("Démarre" );
  89. }
  90. }


 
Rayley!!!!

mood
Publicité
Posté le 22-10-2005 à 20:29:29  profilanswer
 

n°1229313
rnoizet
Posté le 24-10-2005 à 01:08:00  profilanswer
 

Salut,
 
Ton code est dégeu, mais bon, je le dis pas pour pas passer pour un gros connard. Pis l'important quand on débute, c'est que ça marche. :D
Alors justement pour que ça marche : le problème vient du fait que tu appelles une méthode Fenetre qui crée des trucs, et qui appelle Selection lors d'un appui sur un bouton, Selection crée d'autres trucs et appelle Fenetre... En gros tu crées un gros merdier qui prend de plus en plus de mémoire au fur et à mesure. Le mieux est que tu te bases sur le code suivant :
 

Code :
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. public class test extends JFrame
  5. // déclaration (et pas de construction, ie pas de "new" ) de tes boutons, labels, etc.
  6. private JButton entree;
  7. private JButton annule;
  8. public test() // constructeur, du nom de ta classe, et non pas une méthode
  9. {
  10.  super();
  11.  // création de TOUS tes boutons, de TOUS tes labels, etc.
  12.  entree = new JButton ("Entrez" );
  13.  entree.setVisible(true);
  14.  entree.addActionListener(new ActionListener() 
  15.  {
  16.   public void actionPerformed(ActionEvent event)
  17.   {
  18.    entree.setVisible(false);
  19.    annule.setVisible(true);
  20.   }
  21.  });
  22.  annule = new JButton ("Annule" );
  23.  annule.setVisible(false);
  24.  annule.addActionListener(new ActionListener() 
  25.  {
  26.   public void actionPerformed(ActionEvent event)
  27.   {
  28.    entree.setVisible(true);
  29.    annule.setVisible(false);
  30.   }
  31.  });
  32.  // mise en page de tout ton merdier
  33.  this.setLayout(new GridBagLayout());       
  34.  this.add(entree);
  35.  this.add(annule);
  36.  this.setSize(800,600);
  37.  this.setVisible(true);
  38. }
  39. public static void main(String[] argv)
  40. {
  41.  new test();
  42. }
  43. }


 
Bon, après, je suis pas le messie en Java, mais je pense que c'est un peu plus propre comme solution, à savoir de gérer ce que tu affiches dans les actionPerformed de chaque bouton. Il y a moyen de faire un truc un peu plus évolué avec une machine d'états (avec une variable dont la valeur correspond à un état, donc à une certaine configuration de boutons / couleurs / texte affichés).
 
Aussi, essaie de regrouper les choses ensemble pour rendre ton code plus clair (les "entree", "annule", "this", etc.).
 
Bon courage pour la suite en tout cas.


Message édité par rnoizet le 24-10-2005 à 01:20:12
n°1230822
rayley
Posté le 25-10-2005 à 17:54:25  profilanswer
 

Je te remercie pour la mise en forme de mon code malgré ton manque de politesse!!!!!
 
Pour ceux que ca interresse j'ai trouvé une solution à mon problème alors au lieu d'utiliser removeall(), j'ai utiliser hide et show et éviter de faire des appels à différentes méthodes
 
Rayley!!!!

n°1230827
sircam
I Like Trains
Posté le 25-10-2005 à 17:56:07  profilanswer
 

rayley a écrit :

Je te remercie pour la mise en forme de mon code malgré ton manque de politesse!!!!!


:heink:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1231020
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-10-2005 à 21:37:58  profilanswer
 

rayley a écrit :

Je te remercie pour la mise en forme de mon code malgré ton manque de politesse!!!!!


à quel moment a t'il manqué de politesse à ton égard ? il te fait une réponse nickel, et c'est comme ça que tu le remercies ?

n°1231201
sircam
I Like Trains
Posté le 26-10-2005 à 08:38:25  profilanswer
 

Harkonnen a écrit :

à quel moment a t'il manqué de politesse à ton égard ? il te fait une réponse nickel, et c'est comme ça que tu le remercies ?


[:lorilll]
 
Je propose 1 semaine de TT en vertu de ta nouvelle politique d'éradication des boulets et des malpolis sur la cat PHP qui viennent trainer sur la cat Java. [:dawa]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1231479
the real m​oins moins
Posté le 26-10-2005 à 13:50:07  profilanswer
 

Harkonnen a écrit :

à quel moment a t'il manqué de politesse à ton égard ? il te fait une réponse nickel, et c'est comme ça que tu le remercies ?


Il a dit "dégueu", "connard" et "merdier".
Ces mots sont choquants, au même titre que le mot "cyprine".
(Exemple tout à fait fortuit, bien entendu)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1231490
sircam
I Like Trains
Posté le 26-10-2005 à 13:55:57  profilanswer
 

"Choquant" n'implique pas "malpoli".
 
[:moundir]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1231498
the real m​oins moins
Posté le 26-10-2005 à 14:00:56  profilanswer
 

La politesse élementaire indique l'éviction de ces mots tant que faire se peut.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1231499
rayley
Posté le 26-10-2005 à 14:02:00  profilanswer
 

Harkonnen a écrit :

à quel moment a t'il manqué de politesse à ton égard ? il te fait une réponse nickel, et c'est comme ça que tu le remercies ?


Si tu relis bien ma réponse je le remercie mais j'ai eu l'impression qu'il me prenait un peu de haut d'où ma réponse. Bon si ce n'était pas le cas je m'en excuse. Mais je pense que ca ne sert à rien d'épiloguer dessus.
 
Bisous les mecs
 
Rayley!!!!

mood
Publicité
Posté le 26-10-2005 à 14:02:00  profilanswer
 

n°1231502
the real m​oins moins
Posté le 26-10-2005 à 14:07:03  profilanswer
 

rayley a écrit :

Bisous les mecs


Eh oh, et ta politesse ? [:bistou tt]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1231506
rayley
Posté le 26-10-2005 à 14:08:44  profilanswer
 

the real moins moins a écrit :

Eh oh, et ta politesse ? [:bistou tt]


 
autant pour moi :jap:

n°1231521
sircam
I Like Trains
Posté le 26-10-2005 à 14:17:39  profilanswer
 

rayley a écrit :

autant pour moi :jap:


10 coups de fouet ou 1 semaine TT. [:dawa]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1231523
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-10-2005 à 14:19:19  profilanswer
 

sircam a écrit :

[:lorilll]
 
Je propose 1 semaine de TT en vertu de ta nouvelle politique d'éradication des boulets et des malpolis sur la cat PHP qui viennent trainer sur la cat Java. [:dawa]


je vais l'envisager tiens [:figti]
mais est ce que la cat PHP est plus propre depuis ? sinon ça sert à rien :o

n°1231524
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-10-2005 à 14:19:54  profilanswer
 

rayley a écrit :

autant pour moi :jap:


la politesse et l'orthographe aussi :fou:
"au temps pour moi"

n°1231536
the real m​oins moins
Posté le 26-10-2005 à 14:30:39  profilanswer
 

Et les majuscules; et la ponctuation. :pfff:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1231595
sircam
I Like Trains
Posté le 26-10-2005 à 15:25:03  profilanswer
 

Citation :

mais est ce que la cat PHP est plus propre depuis ?


Ca commence tout doucement à porter ses fruits, mais il faut rester vigilant. La cat PHP attire les boulets comme la m... attire les mouches.   [:pingouino]  
 
 
"au temps pour moi" => Les deux sont valables, hein.
 
 [:moundir]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}

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

  execution interface graphique

 

Sujets relatifs
interface php et bases de données XMLPHP Exécution de frame en séquentiel
arguments utilisateurs pendant l'executionExecution requete Access sous VBS
Execution requete Access depuis VBSFonctionne sous l'interface de développement, l'exécutable plante ?
Probleme avec Kit GraphiqueExécution longue d'un script suite à un formulaire
Detection et execution de softphone par bannièreFichier .bat et script d'exécution d'une page web
Plus de sujets relatifs à : execution interface graphique


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