|
|
|
|
Posté par
garpa, le samedi 7 avril 2007 à 16:19:01Configuration: Windows XP Firefox 2.0.0.3
fais un frame.dispose() sur la fenetre que tu souhaite fermer.
Le loup, solitaire et mystérieux. |
Salut!
Ce que tu dois faire, c'est ouvrir tes deux fenêtres (deux classes différentes, je suppose) depuis une autre classe. Lorsque les joeurus ont entrés leurs noms et que, par exemple, le dernier à donner son nom clique sur un bouton "ok" pour signifier que tous les noms ont été fournis, la "fenêtre des noms" doit avertir la classe qui a ouvert tes deux fenêtres que les noms ont été entrés. La classe qui a ouvert les 2 fenêtres doit alors femer la première puis ouvrir la seconde, celle de jeu proprement dite. Vois l'exemple ci-dessous: Classe qui instancie les deux fenêtres:
package twoframes;
import javax.swing.JFrame;
/**
* Created on 09-avr.-07
*
* @author: HackTrack
*/
public class FramesHandler {
private FirstFrame firstFrame;
private SecondFrame secondFrame;
public FramesHandler() {
super();
}
public void startDemo(){
firstFrame = new FirstFrame(this);
secondFrame = new SecondFrame(this);
firstFrame.pack();
firstFrame.setVisible(true);
}
public void handle(JFrame sourceFrame){
if(sourceFrame==firstFrame){
System.out.println("Message reçu de firstFrame");
firstFrame.setVisible(false);
secondFrame.setFirstPlayerName(firstFrame.getFirstPlayerName());
secondFrame.setSecondPlayerName(firstFrame.getSecondPlayerName());
secondFrame.pack();
secondFrame.setVisible(true);
}else if(sourceFrame==secondFrame){
System.out.println("Message reçu de secondFrame");
}
}
public static void main(String[] args) {
FramesHandler demo = new FramesHandler();
demo.startDemo();
}
}
Première fenêtre (nom des joueurs):
package twoframes;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* Created on 09-avr.-07
*
* @author: HackTrack
*/
public class FirstFrame extends JFrame {
private Container c;
private FramesHandler handler;
private JTextField firstPlayer;
private JTextField secondPlayer;
private FirstFrame instance;
public FirstFrame(FramesHandler handler) {
super("Inscription des joueurs");
this.handler=handler;
instance=this;
initializeComponent();
}
private void initializeComponent() {
c = getContentPane();
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel registrationPanel = new JPanel();
registrationPanel.setPreferredSize(new Dimension(320,200));
registrationPanel.setLayout(new GridLayout(3,2));
registrationPanel.add(new JLabel("Player 1:"));
firstPlayer = new JTextField("Player 1");
registrationPanel.add(firstPlayer);
registrationPanel.add(new JLabel("Player 2:"));
secondPlayer = new JTextField("Player 2");
registrationPanel.add(secondPlayer);
JButton okButton = new JButton("Ok");
okButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
handler.handle(instance);
}
});
registrationPanel.add(okButton);
JButton resetButton = new JButton("Reset");
resetButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
firstPlayer.setText("Player 1");
secondPlayer.setText("Player 2");
}
});
registrationPanel.add(resetButton);
c.add(registrationPanel);
}
public String getFirstPlayerName(){
return firstPlayer.getText();
}
public String getSecondPlayerName(){
return secondPlayer.getText();
}
}
Seconde fenêtre (jeu):
package twoframes;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* Created on 09-avr.-07
*
* @author: HackTrack
*/
public class SecondFrame extends JFrame {
private Container c;
private FramesHandler handler;
private JLabel firstPlayerName;
private JLabel secondPlayerName;
public SecondFrame(FramesHandler handler) {
super("Jeu");
this.handler = handler;
initializeComponent();
}
private void initializeComponent() {
c = getContentPane();
c.setLayout(new BorderLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel playersPanel = new JPanel();
firstPlayerName = new JLabel();
playersPanel.add(firstPlayerName);
secondPlayerName = new JLabel();
playersPanel.add(secondPlayerName);
c.add(playersPanel, BorderLayout.NORTH);
JPanel playPanel = new JPanel();
playPanel.setPreferredSize(new Dimension(640, 480));
c.add(playPanel, BorderLayout.CENTER);
}
public void setFirstPlayerName(String firstPlayer) {
firstPlayerName.setText(firstPlayer);
}
public void setSecondPlayerName(String secondPlayer) {
secondPlayerName.setText(secondPlayer);
}
}
;-) Hacktrack |
| 10/06 23h46 | Outlook 2007 / ouvrir plusieurs fenêtres en même temps | Microsoft Outlook |
| 05/01 12h20 | [popups] Ouverture de fenêtres internet publicitaires (pop-up) | Virus |
| 16/04 17h47 | Xubuntu: Linux avec seulement 64 Mo de RAM | Ubuntu |
| 01/01 13h01 | Ouvrir tous les dossiers dans une fenêtre unique | Windows |
| 28/12 21h12 | Faire fonctionner vista sur une petite configuration PART2 | Windows |
| 10/05 10h21 | Dossier qui se ferme seul après son ouverture | 2 |
| 12/08 14h20 | JAVA : fermer une fenetre avec un JButton | 1 |
| 08/04 18h35 | [JAVA] Fermer une fenetre en mode graphique | 2 |
| 01/03 16h55 | Java Fermeture de fenêtre WindowListener | 0 |
![]() | Delphi 6 Edition personnelle - La société Borland (Inprise) a mis à disposition gratuitement, pour un usage non-commercial, la version 6 de son... | Catégorie: Delphi Licence: Freeware/gratuit |
![]() | Opera - Marre des trous de sécurité du navigateur par défaut ? Envie enfin d'avoir un navigateur simple et configurable facilement ?... | Catégorie: Navigateurs Licence: Freeware/gratuit |
![]() | TaskBar Shuffle - Tout simple mais pratique: Ce programme permet de déplacer les tâches dans la barre des tâches par simple drag-n-drop... | Catégorie: Optimisation Licence: Freeware/gratuit |
![]() | IE_Kill - Les anciennes versions d'IE ne possèdent pas encore le système d'onglet. Cette fonction est très intéressante puisque... | Catégorie: Navigateurs Licence: Freeware/gratuit |
![]() | Hama Mini-Seure Digital 256 | Catégorie: Carte Mémoire / Clé USB | |
![]() | Sun Java Workstation W2100z | Catégorie: Ordinateur de bureau | |
![]() | sun Java W2100Z Dual | Catégorie: Ordinateur de bureau | |
![]() | sun Java Workstation W2100z | Catégorie: Ordinateur de bureau |