seifetoiliste
Messages postés9Date d'inscriptionmardi 2 mars 2010StatutMembreDernière intervention12 mars 2010
-
2 mars 2010 à 17:56
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 2012
-
22 mai 2011 à 14:33
slt ,
j'ai un petit projet en java ,
mon application est composer de 2 frame
et je veut savoir comment je peut accéder a la 2 frame en cliquant sur un button dans la frame 1.
svp pouvez vous m'aider et merciiii
cormandyr
Messages postés600Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 8 juillet 201612 5 mars 2010 à 10:54
C'est plus que basique...
dans ta frame principale, tu as une variable d'instance verme un objet du type de ta frame secondaire.
dans ta frame principale, tu appel le constructeur de ta frame secondaire...
simplement...
Vos explications sont un peu confuses. Mettez un ActionListener sur le JButton; dans cet ActionListener, appelez la méthode setVisible(true) sur la JFrame que vous voulez afficher. Voici un exemple assez bête :
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
public class Example{
private static int index = 0;
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
final JFrame frame1 = new JFrame();
frame1.setLayout(new GridLayout(1,0));
final JFrame frame2 = new JFrame();
frame2.setLayout(new GridLayout(1,0));
//la première fenêtre doit quitter l'application en cas de fermeture
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel label = new JLabel("voici la seconde fenetre");
frame2.add(label);
final JLabel numberLabel = new JLabel(" " + index);
frame2.add(numberLabel);
frame2.pack();
final JButton button = new JButton("cliquez ici pour afficher la deuxieme fenetre");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
index++;
numberLabel.setText(" " + index);
frame2.setVisible(true);
}
});
frame1.add(button);
frame1.pack();
frame1.setVisible(true);
}
});
}
}
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 22 mai 2011 à 11:47
L'utilisation du pattern Singleton est aussi une solution... ;o) ...
Sinon effectivement si ton appli contient 2 frames, elle ont forcement étaient instancié par un composant a ,ce nivo tu peux initialisé des reference en parametre.
frm1 = new Frame();
frm2 = new Frame(frm1);
ou frm2.setFriendFrame( frm1 );
en gérant évidement tout ca dans ta class Frame ... ;o)
GodConan, veuillez éviter d'induire des débutants en erreur, la méthode setFriendFrame n'existe ni dans la classe java.awt.Frame ni dans les classes dont elle hérite directement et indirectement (Window, Container, Component).
Deuxièmement, le patron de conception Singleton est à utiliser avec une grande prudence et uniquement pour des ressources très coûteuses à la création. Comme la description des gens qui sont venus demander de l'aide est très très vague, les orienter directement sur ça est une mauvaise idée à mon humble avis. Cordialement.
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 22 mai 2011 à 14:33
;o) Pour le singleton ;o) évidement ;o) mais cela reste une solution... Et comme en effet la demande est vague ... libre au demandeur de ce documenter sur le pattern en question... informations disponible aussi sur ce site...