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

NetBeans Java Discussion :

mettre à disable une jframe


Sujet :

NetBeans Java

  1. #1
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Points : 72
    Points
    72
    Par défaut mettre à disable une jframe
    Je vous explique la situation :

    j'utilise matisse/netbeans.
    j'ai 2 jframes j'aimerais que quand je cliques sur un bouton de ma jframe1, ma jframe2 s'affiche et ma jframe1 se mette en enabled(false)...

    Pour cela jutilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        private void button1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
           new Jframe2().setVisible(true);
           Jframe1.setEnabled(true);
        }
    J'ai l'erreure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    non-static method setEnabled cannot be referenced in a static context
    Le problème c'est que netbeans ne me permet pas de modifier mon
    "private void button1ActionPerformed" en "private static void button1ActionPerformed"


    Donc ma question est comment faire pour rendre ma jframe1 enabled(false) ?

    Merci d'avance

  2. #2
    Membre averti
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Points : 401
    Points
    401
    Par défaut
    met un le frame1 dans le constructeur de ta classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public frame2(JFrame frame1) {
         ...
    }
    ou alors tu déclare ta frame1 en variable quelque part :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JFrame frame1 = new frame1()
    iMac 27" 3.06 GHz Intel Core 2 Duo, 4Go DDR3, Mac OS 10.6.5
    MacBook Pro 17", 2,3 GHz Intel Core 2 Duo, 2 Go DDR2, Mac OS 10.4.11

  3. #3
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Pour moi, ce que tu veux faire revient à un JDialog modal pour ta 2eme Frame

    http://java.sun.com/j2se/1.5.0/docs/...g/JDialog.html)
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  4. #4
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Je ne veux pas utiliser un jdialog car si je ne fais que des jdialog j'aurais tout mon code source sur un seul fichier et se sera super dure a gérer.

    Je veux faire réellement plusieur jframe....

    Par contre j'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        private void button1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
           new Jframe2().setVisible(true);
           javax.swing.JFrame Jframe1 = new Jframe1();
           Jframe1.setEnabled(false);
        }
    Mais ceci ne marche pas : pas de message d'erreur, mais pas disable non plus...


    et la première solution me renvoie plein de message d'erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public frame2(JFrame frame1) {  ... }

  5. #5
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Citation Envoyé par lex13
    Je ne veux pas utiliser un jdialog car si je ne fais que des jdialog j'aurais tout mon code source sur un seul fichier et se sera super dure a gérer.
    Là j'ai pas du tout compris
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  6. #6
    Membre averti
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Points : 401
    Points
    401
    Par défaut
    J'avis pas bien lu le message de départ.

    Et avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     new Jframe2().setVisible(true); 
    this.setEnabled(false); }
    iMac 27" 3.06 GHz Intel Core 2 Duo, 4Go DDR3, Mac OS 10.6.5
    MacBook Pro 17", 2,3 GHz Intel Core 2 Duo, 2 Go DDR2, Mac OS 10.4.11

  7. #7
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    merci orion c'est exactement ce que je voulais !


    remika >> je me comprends ^^
    Le plus important c'est que j'ai une solution à mon pb !!

  8. #8
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    zut maintenant j'ai un problème lorsque je veux rendre de nouveau ma jframe1 à enabled(true) après avoir fermé ma jframe2 !!!

    Comment faire ?
    Sur ma Jframe2 j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        private void bt_annulerActionPerformed(java.awt.event.ActionEvent evt) {                                           
     
            dispose(); 
        }

  9. #9
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Un code fait à l'arrache mais qui a l'air de marcher :

    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 class JFrame1 extends JFrame implements ActionListener
    {
    	public JFrame1()
    	{
    		setLocationRelativeTo(null);
    		setSize(400,400);
    		setLayout(null);
     
    		jbutton = new JButton("test");
    		jbutton.setBounds(10,10,100,30);
    		add(jbutton);
     
    		jbutton.addActionListener(this);
    	}
     
    	public void actionPerformed(ActionEvent arg0)
    	{
    		new JFrame2(this);
    	}
     
    	private JButton jbutton;
     
    	private static final long serialVersionUID = 1L;
    }
    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
    26
    27
    28
    29
    30
    31
    32
     
    public class JFrame2 extends JFrame implements ActionListener
    {
    	public JFrame2(JFrame1 parentPanel)
    	{
    		this.parentPanel = parentPanel;
    		parentPanel.setEnabled(false);
     
    		setSize(100,100);
    		setLayout(null);
    		setLocationRelativeTo(parentPanel);
     
    		jbutton = new JButton("test");
    		jbutton.setBounds(10,10,70,25);
    		add(jbutton);
     
    		jbutton.addActionListener(this);
     
    		setVisible(true);
    	}
     
    	public void actionPerformed(ActionEvent arg0)
    	{
        	        dispose();
        	        parentPanel.setEnabled(true);
    	}
     
    	private JButton jbutton;
    	private JFrame1 parentPanel;
     
    	private static final long serialVersionUID = 1L;
    }
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  10. #10
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    OK merci !!

  11. #11
    Membre éprouvé
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Points : 936
    Points
    936
    Par défaut
    Citation Envoyé par lex13
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        private void button1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
           new Jframe2().setVisible(true);
           Jframe1.setEnabled(true);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    non-static method setEnabled cannot be referenced in a static context
    L'erreur venait du fait que tu essayais d'appeler la méthode setEnabled() directement sur ta classe et non sur une instance de classe. Problème résolu quand Orian t'a proposé d'utiliser this qui fait référence à l'instance de ta classe en cours.
    (mieux vaut expliquer que de recommencer a faire des betises )

    n!co
    Netbeans account : nico@share.java.net
    Merci de ne pas poser de questions techniques par MP

  12. #12
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par n!co
    L'erreur venait du fait que tu essayais d'appeler la méthode setEnabled() directement sur ta classe et non sur une instance de classe. Problème résolu quand Orian t'a proposé d'utiliser this qui fait référence à l'instance de ta classe en cours.
    (mieux vaut expliquer que de recommencer a faire des betises )

    n!co

    merci de l'explication, il est vrai que je prefere une explication qu'une solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre / enlever dynamiquement la décoration d'une JFrame
    Par Starchic dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 27/03/2009, 17h23
  2. Réponses: 2
    Dernier message: 22/03/2007, 22h46
  3. [SWING] 1.4 Mettre une JFrame always on top
    Par PoPeio dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 29/03/2006, 17h13
  4. [SWING][JFrame] mettre un border dans une JFrame
    Par PoPeio dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 20/03/2006, 17h01
  5. [AWT] JFrame - Mettre une taille minimum sur une Jframe
    Par rabobsky dans le forum Agents de placement/Fenêtres
    Réponses: 12
    Dernier message: 27/07/2005, 19h20

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