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

AWT/Swing Java Discussion :

une fenetre fait que les fenetres du dessous deviennent toutes grises au passage


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut une fenetre fait que les fenetres du dessous deviennent toutes grises au passage
    Bonjour,

    Voila j'ai une fenetre qui s'ouvre grace à un premier bouton.

    Cette fenetre comporte
    3 JLabel 3 combo et 2 JButton

    Le probleme c'est que j'ai remarqué que c'est le choix d'une combo précise q ui fait ça.
    je choisis par exemple 2H dans la combo, je valide avec le bouton "valider t max"
    et la c'est le gros bug meme quand je déplace pas. et quand je déplace alors là... ca fait du matisse
    c'est vrai que les actionListener et les actionPerformed je m'y perds un peu
    Voici un apercu du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public class PanneauBoutonsGraphe extends JPanel
    implements MouseListener,MouseMotionListener, ActionListener, Multilangue {
     
    	private static final long serialVersionUID = 1L;
     
    	// Boutons                                              
    	private JButton b_raz_graphe,b_valider_tmax;
    	// Labels
    	private JLabel pas,decalage,tmax;
    	// Listes déroulantes
    	private JComboBox cb_pas_simulation,cb_decalage,cb_tmax;
    	private AppletPh2 app;
    	private String infoTMAX;
    	private GridBagConstraints gbc ;
    //------------------------------------------------------------------------//
    	/** Creates a new instance of PanneauBoutonsGraphe */
    	public PanneauBoutonsGraphe(AppletPh2 appP) {
    		super();
    		this.app = appP;
    		this.setBackground(Color.WHITE);
     
    		Container contenu=this;
    La combo concerné et le bouton qui va avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    // Liste déroulante valeur T-max
    		tmax = new JLabel(app.getItemName("TMAX")+" = ");
     
     
    		String[] chaineTmax = {"2H", "4H", "8H", "16H", "24H"};
    		cb_tmax = new JComboBox(chaineTmax);
    		infoTMAX = app.getItemInfobulle("TMAX");
    		infoTMAX.replace("\\u00df","\u00df");
    		cb_tmax.setToolTipText(infoTMAX);
    		cb_tmax.setSelectedItem("2H");
    		cb_tmax.addActionListener(this);
    		cb_tmax.setBackground(Color.WHITE);
     
     
    		// Bouton valider t-max
    		b_valider_tmax = new JButton(app.getItemName("VALIDTMAX"));
    		b_valider_tmax.setToolTipText(app.getItemInfobulle("VALIDTMAX"));
    		b_valider_tmax.addActionListener(this);
    		/*Un listener sur le bouton valider afin de mettre à jour la petite  JLabel
    		 * concernant le tmax de la simulation */
    		b_valider_tmax.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				getPasSimulation02(app.getFenetreGraphe().getLabel2());
    				}
    		});
    Merci de me sauver!

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bon, j'ai pas tout compris ce que tu cherchais à faire. Ceci dit, quelques trucs me semblent pas très clairs.

    Un petit récap (simplifié) sur les actionListener/performed :
    Un ActionListener c'est un objet qui possède une méthode actionPerformed.

    On associe un ActionListener à un composant (en l'occurence, un JButton) et quand ce composant est actionné, la méthode actionPerformed de l'ActionListener est exécutée.

    J'espère avoir été clair


    Donc, pour en revenir à ton cas, il faudrait que tu nous montre le code de la méthode actionPerformed qui doit se trouver dans ta classe PanneauBoutonsGraphe.

    Ensuite vient une question : ta méthode getPasSimulation02 présente dans le actionPerformed que l'on voit, que fait-elle?
    Une méthode qui commence par get, en général, ça ne fait que renvoyer une info sans effets de bord, donc si c'est le cas, ton ActionListener ne sert à rien.

  3. #3
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut j'ai oublié j'ai un actionPerformed associé à la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    	public void actionPerformed(ActionEvent e) {
    		Object source;
    		source = e.getSource();
    	else if (source == this.b_valider_tmax) {
    			int index,
    			tMax = 2;
    			index = this.cb_tmax.getSelectedIndex();
    			if (index == 0) { tMax = 2; }
    			else if (index == 1) { tMax = 4; }
    			else if (index == 2) { tMax = 8; }
    			else if (index == 3) { tMax = 16; }
    			else if (index == 4) { tMax = 24;}
    			app.getFenetreGraphe().getGraphePh().setTmax(tMax);
    			app.getFenetreGraphe().getGraphePompe().setTmax(tMax);

  4. #4
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut c'est vrai que getPasSimulation renvoie rien
    mais elle me permet de mettre à jour la fenetre parente d ela JFrame à panneauBoutonsGraphe

    /*getPasSimulation02 met à jour la 2eme etiquette entre les deux graphes liée à Tmax*/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public void getPasSimulation02(JLabel lab2){
     
     
    		if (cb_tmax.getSelectedItem().equals("2H"))
    		{
    			lab2.setText(app.getItemName("TMAX")+" : 2H ");
    		}
    		if (cb_tmax.getSelectedItem().equals(" : 4H"))
    		{
    			lab2.setText(app.getItemName("TMAX")+" 4H ");
    		}
    		if (cb_tmax.getSelectedItem().equals(" : 8H"))
    		{
    			lab2.setText(app.getItemName("TMAX")+" : 8H ");
    		}
    		if (cb_tmax.getSelectedItem().equals("16H"))
    		{
    			lab2.setText(app.getItemName("TMAX")+" : 16H ");
    		}
    		if (cb_tmax.getSelectedItem().equals("24H"))
    		{
    			lab2.setText(app.getItemName("TMAX")+" : 24H ");
    		}
    		lab2.setFont( new Font("TimesRoman ",Font.ITALIC,12));
    	}

  5. #5
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    hum...

    donc déjà, apparemment, tu fais deux fois le même travail à savoir déterminer quel est l'objet sélectionné dans la JComboBox, tu dois pouvoir le simplifier.

    Je te conseillerai de faire une méthode getSelectedTMax(), par exemple, qui te renverrais le tmax sélectionné dans la comboBox.

    Ensuite, dans le actionPerformed de ta classe, il ne te resterait plus que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	public void actionPerformed(ActionEvent e) {
    		Object source;
    		source = e.getSource();
    	else if (source == this.b_valider_tmax) {
    			tMax = getSelectedTMax();
    			app.getFenetreGraphe().getGraphePh().setTmax(tMax);
    			app.getFenetreGraphe().getGraphePompe().setTmax(tMax);
    			getPasSimulation02(app.getFenetreGraphe().getLabel2());
    ton getPasSimulation02 devient alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void getPasSimulation02(JLabel lab2){  
    lab2.setText(app.getItemName("TMAX")+" : " + tmax + "H ");
    lab2.setFont( new Font("TimesRoman ",Font.ITALIC,12)); }
    et pour finir, dans ton constructeur, tu te limite à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public PanneauBoutonsGraphe(AppletPh2 appP) {
    		super();
    		this.app = appP;
    		this.setBackground(Color.WHITE);
     
    		Container contenu=this;
    // Liste déroulante valeur T-max
    		tmax = new JLabel(app.getItemName("TMAX")+" = ");
     
     
    		String[] chaineTmax = {"2H", "4H", "8H", "16H", "24H"};
    		cb_tmax = new JComboBox(chaineTmax);
    		infoTMAX = app.getItemInfobulle("TMAX");
    		infoTMAX.replace("\\u00df","\u00df");
    		cb_tmax.setToolTipText(infoTMAX);
    		cb_tmax.setSelectedItem("2H");
    		cb_tmax.addActionListener(this);
    		cb_tmax.setBackground(Color.WHITE);
     
     
    		// Bouton valider t-max
    		b_valider_tmax = new JButton(app.getItemName("VALIDTMAX"));
    		b_valider_tmax.setToolTipText(app.getItemInfobulle("VALIDTMAX"));
    		b_valider_tmax.addActionListener(this);
    ça fait bcp de codepour un post, mais pas mal de simplifications.

  6. #6
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut je teste ça demain matin
    ZZZzzzzZZz

    merci en ttout cas

Discussions similaires

  1. Réponses: 16
    Dernier message: 12/09/2022, 19h46
  2. Réponses: 8
    Dernier message: 26/07/2012, 08h18
  3. Réponses: 0
    Dernier message: 30/07/2009, 10h42
  4. Réponses: 2
    Dernier message: 08/07/2009, 11h07
  5. Récupérer grâce à une requête SQL que les champs modifiés
    Par guigui11 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 29/08/2006, 09h58

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