lex1111
Messages postés220Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention26 octobre 2007
-
3 avril 2007 à 19:00
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 ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 19:48
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
lex1111
Messages postés220Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention26 octobre 20071 3 avril 2007 à 20:28
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....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 20:39
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"
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 20:40
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
lex1111
Messages postés220Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention26 octobre 20071 3 avril 2007 à 20:43
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....
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 20:48
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
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 20:48
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
lex1111
Messages postés220Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention26 octobre 20071 3 avril 2007 à 20:53
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);
lex1111
Messages postés220Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention26 octobre 20071 3 avril 2007 à 20:58
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...
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 20:58
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
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 21:03
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
lex1111
Messages postés220Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention26 octobre 20071 3 avril 2007 à 21:03
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 ?
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
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 21:31
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"
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 21:38
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"
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 21:42
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