Afficher une autre frame ? [Résolu]

lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 19:00 - Dernière réponse :  Twinuts
- 4 avril 2007 à 10:12
Bonjour,

comment faire pour afficher une jframe a partir d'un clic sur un bouton ?

par exemple, je veux afficher ma fenêtre dont la jframe se nomme jframe1 par un clic sur un bouton  jbutton1 d'une autre jframe...

Et puis dans le même ordre d'idée, comment fermer la jframe1 en cliquant sur un bouton quitter de celle ci ?

Merci d'avance
 
Afficher la suite 

Votre réponse

24 réponses

cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 3 avril 2007 à 19:16
+1
Utile
il te suffit d'ajouter un ActionListener sur ton jbutton1, et mettre dans la méthode actionPerformed le code d'affichage du jframe :

new JFrame1().setVisible(true);

Et pour fermer la frame, mets dans la méthode actionPerformed :
dispose();
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_DARKSIDIOUS
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 19:18
0
Utile
Merci !!!
Commenter la réponse de lex1111
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 19:48
0
Utile
Salut:

DarkSidious >> ce n'est pas suffisant ce que tu as écrit.

Il faut s'assurer de l'unicité de l'instance que tu lances en cliquant sur le bouton car si on appuie plusieurs fois sur le bouton on peut avoir une dizaines d'instances.

private MyFrame frame = null;

// ...

public void actionPerformed (ActionEvent ae) {
    if (ae.getSource () == btn) {
       if (frame1 == null) {
           frame = new MyFrame ();        
       }
       frame.setVisible (true);
    }
}


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Commenter la réponse de Ombitious_Developper
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 20:28
0
Utile
Ok, merci pour ta solution...

Dans le même genre d'idée comment rendre la frame principale disable après avoir lancé la frame secondaire ?
C'est a dire que je ne veux pas que l'on puisse utiliser la frame principale lorsque la frame secondaire est ouverte....
Commenter la réponse de lex1111
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 20:39
0
Utile
Salut:

Dans ce cas il faut que ton second frame soit une boîte de dialogue modale.

Changes:

public class ChildWindow extends JFrame {
    public ChildWindow (JFrame parentFrame) {
       super (parentFrame);
       // ...
    }  
}

Par


public class ChildWindow extends JDialogBox {

}

Suposons que c'est la classe de ta fenêtre principale:

public class MainFrame extends JFrame {
    private ChildWindow child = null;

    // ...
    child = new ChildWindow (this);
}



________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
Commenter la réponse de Ombitious_Developper
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 20:40
0
Utile
Salut:

Petite réctification:




Dans ce cas il faut que ton second frame soit une boîte de dialogue modale.

Changes:

public class ChildWindow extends JFrame { 
}

Par

//
// Ici, nouvelles changements
//

public class ChildWindow extends JDialogBox {
   

public ChildWindow (JFrame parentFrame) {
       super (parentFrame);
       // ...
    }



}

Suposons que c'est la classe de ta fenêtre principale:

public class MainFrame extends JFrame {
    private ChildWindow child = null;

    // ...
    child = new ChildWindow (this);
}



________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Commenter la réponse de Ombitious_Developper
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 20:43
0
Utile
J'ai rien compris ^^

Je ne vois pas en où dans ce que tu m'as dit je rend la jframe principale disable....

De plus, quand je disait que j'avais un jframe principale et une jframe secondaire, c'était juste un exemple, en fait les 2 jframes sont indépendantes....

merci de ton aide
Commenter la réponse de lex1111
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 20:48
0
Utile
Salut:

Bon, une boite de dialogue modale quand elle s'affiche elle bloque la fenêtre parent, tu ne peux pas revenir à ton frame principal qu'après avoir valider ou quitter ton boite de dialogue.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Commenter la réponse de Ombitious_Developper
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 20:48
0
Utile
Salut:

Je pense que c'est ce que tu veux.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Commenter la réponse de Ombitious_Developper
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 20:53
0
Utile
C'est une méthode, mais utilisant netbeans/matisse, je ne peux pas gérer cela en visuel, ce que tu me propose m'obligerai a ajouter mes composants sur ma deuxième Jframe "à la main" alors que je prefere le faire a vec matisse....

N'y a t'il pas une méthode plus simple du genre  :
this.setenabled(false);

?

Merci d'avance

 
Commenter la réponse de lex1111
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 20:58
0
Utile
En plus j'ai l'impression que ce que tu me propose est de rajouter une simple dialogbox...alors que moi sur ma deuxième jframe j'ais plein de chose :
des jlist
des jbutton...
Commenter la réponse de lex1111
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 20:58
0
Utile
Salut:

J'appelle ce que tu veux du fabrication et ce n'est pas du vrai métier.

Mais si tu veux tu peux désactiver les composants de ton JFrame:

MainFrame mainFrame = ...; // Fenêtre principale

Component [] comps = mainFrame.getComponents ();
for (int i = 0; i < comps.length; ++i)
    comps [i].setEnabled (false);

Conseil: ne te laisses pas dépendre de l'éditeur visuel.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Commenter la réponse de Ombitious_Developper
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 21:03
0
Utile
Salut:

un JDialog est comme un JFrame elle contient des composants.
Elle offre la fonctionalité de modalité.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Commenter la réponse de Ombitious_Developper
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 21:03
0
Utile
La programmation n'est pas pour moi un métier, mais seulement une activité personnelle...

De plus je commence à peine le java, je préfère m'aider au départ d'un éditeur visuel pour bien voir comment il me créer mes classes pour ensuite le faire moi même....

Bon sinon ce que tu me propose c'est de mettre disable chaque composants que contient ma jframe principale....
Je pense qu'il serait plus simple de rendre disable la Jframe en elle même est donc les composants qu'elles contient avec...
En tout cas c'est comme ça que je faisais en visual basic...

Est ce possible de rendre disable la jframe principale ? si oui comment ?

Merci d'avance
:)
Commenter la réponse de lex1111
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 21:21
0
Utile
PS :

    private void bt_advancedActionPerformed(java.awt.event.ActionEvent evt) {                                           

       new frame_recherche_avancee().setVisible(true);
       Component [] comps = frame_accueil.getComponents ();
        for (int i = 0; i < comps.length; ++i)
        comps [i].setEnabled (false);
}

ceci me génère un problème du type : "non-static method getcomponents cannot be referenced in a static context"
Le problème c'est que netbeans ne me laisse pas modifier "private void" en "private static void" du coup je ne sais pas comment régler ce problème
Commenter la réponse de lex1111
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 21:31
0
Utile
Salut:

C'est parmi les problèmes de l'éditeur visuel.




________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
Commenter la réponse de Ombitious_Developper
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 21:34
0
Utile
^^
Je me doute que l'editeur visuel a ses limites...

mais bon c'est possible de disable ma jframe oui ou non ?
Commenter la réponse de lex1111
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 21:38
0
Utile
Salut:

Je ne sais pas. Mais je suis toujours pour la boîte de dialogue modale.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
Commenter la réponse de Ombitious_Developper
lex1111 220 Messages postés jeudi 30 mars 2006Date d'inscription 26 octobre 2007 Dernière intervention - 3 avril 2007 à 21:40
0
Utile
ok

merci pour tes réponses !

+
Commenter la réponse de lex1111
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 avril 2007 à 21:42
0
Utile
Salut:

Franchement les boite de dialogue modales sont les meilleurs solutions.

Je crois qu'on a dérrangé DarkSidious


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Commenter la réponse de Ombitious_Developper

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

afficher une autre frame ? - page 2