Ouvrir une fenêtre à partir d'une autre
Bonjour,
On est 3 débutants à travailler sur un projet Java de version très simplifiée du jeu "Lazors" (disponible sur Android/iPhone).
Pour le moment on vient de coder une fenêtre d'un niveau du jeu et une autre fenêtre qui s'affiche au lancement du programme.
Le problème est qu'on ne sait pas comment faire le lien entre les 2. La première est composée de 2 boutons et l'idée ce serait d'ouvrir la 2ème en cliquant sur l'un des boutons...
Voici le code de la fenêtre principale :
Code:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
| public class Fenetre extends JFrame implements ActionListener {
private JButton buttonVG = new JButton("V");
private JButton buttonVD = new JButton("V");
private JButton buttonVH = new JButton("V");
private JButton buttonVB = new JButton("V");
private JButton buttonJG = new JButton("J");
private JButton buttonJD = new JButton("J");
private JButton buttonJH = new JButton("J");
private JButton buttonJB = new JButton("J");
private JButton buttonBG = new JButton("B");
private JButton buttonBD = new JButton("B");
private JButton buttonBH = new JButton("B");
private JButton buttonBB = new JButton("B");
private JPanel panel = new JPanel();
private JPanel panelsud = new JPanel();
private JPanel panelest = new JPanel();
private JPanel panelouest = new JPanel();
private JPanel panelcentre = new JPanel();
private Cubes cubes = new Cubes();
public void actionPerformed(ActionEvent e) {
if(e.getSource() == buttonVD) {
cubes.droiteV();
}else {
}
if(e.getSource() == buttonVG) {
cubes.gaucheV();
} else {
}
if(e.getSource() == buttonVH) {
cubes.hautV();
}else {
}
if(e.getSource() == buttonVB) {
cubes.basV();
}else {
}
if(e.getSource() == buttonJD) {
cubes.droiteJ();
}else {
}
if(e.getSource() == buttonJG) {
cubes.gaucheJ();
}else {
}
if(e.getSource() == buttonJH) {
cubes.hautJ();
}else {
}
if(e.getSource() == buttonJB) {
cubes.basJ();
}else {
}
if(e.getSource() == buttonBD) {
cubes.droiteB();
}else {
}
if(e.getSource() == buttonBG) {
cubes.gaucheB();
}else {
}
if(e.getSource() == buttonBH) {
cubes.hautB();
}else {
}
if(e.getSource() == buttonBB) {
cubes.basB();
}else {
}
}
public Fenetre() {
this.setVisible(true);
this.setTitle("Lazors");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.setLayout(new BorderLayout());
panelsud.setLayout(new BorderLayout());
panelest.setLayout(new BorderLayout());
panelouest.setLayout(new BorderLayout());
panelcentre.setLayout(new BorderLayout());
panel.add(panelsud, BorderLayout.SOUTH);
panelsud.add(panelest, BorderLayout.EAST);
panelsud.add(panelouest, BorderLayout.WEST);
panelsud.add(panelcentre, BorderLayout.CENTER);
panelouest.add(buttonVG, BorderLayout.WEST);
panelouest.add(buttonVD, BorderLayout.EAST);
panelouest.add(buttonVH, BorderLayout.NORTH);
panelouest.add(buttonVB, BorderLayout.SOUTH);
panelcentre.add(buttonJG, BorderLayout.WEST);
panelcentre.add(buttonJD, BorderLayout.EAST);
panelcentre.add(buttonJH, BorderLayout.NORTH);
panelcentre.add(buttonJB, BorderLayout.SOUTH);
panelest.add(buttonBG, BorderLayout.WEST);
panelest.add(buttonBD, BorderLayout.EAST);
panelest.add(buttonBH, BorderLayout.NORTH);
panelest.add(buttonBB, BorderLayout.SOUTH);
panel.setBackground(Color.gray);
panel.setSize(300,300);
buttonVG.addActionListener(this);
buttonVD.addActionListener(this);
buttonVH.addActionListener(this);
buttonVB.addActionListener(this);
buttonJG.addActionListener(this);
buttonJD.addActionListener(this);
buttonJH.addActionListener(this);
buttonJB.addActionListener(this);
buttonBG.addActionListener(this);
buttonBD.addActionListener(this);
buttonBH.addActionListener(this);
buttonBB.addActionListener(this);
Thread thread = new Thread(cubes);
thread.start();
panel.add(cubes);
panel.updateUI();
this.setContentPane(panel);
this.setSize(315, 415);
this.setLocationRelativeTo(null);
}
public static void main(String[] args) {
Fenetre Fenetre = new Fenetre();
}
} |
et ici le code de la fenêtre de lancement :
Code:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| public class Fenetre extends JFrame{
public Fenetre(){
//On instancie notre premier bouton
JButton Bouton1 = new JButton("Jouer niveau1");
//On instancie notre second bouton
JButton Bouton2 = new JButton("Jouer niveau2");
//Définit un titre pour notre fenêtre
this.setTitle("Menu");
//Définit sa taille
this.setSize(300, 300);
//Termine le processus lorsqu'on clique sur la croix rouge
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//On affiche la fenêtre au milieu de l'écran
this.setLocationRelativeTo(null);
//on instancie le nouveau Panel
JPanel pan = new JPanel();
//Définition de sa couleur de fond
pan.setBackground(Color.BLACK);
//On définit le layout à utiliser sur le content pane
this.setContentPane(pan);
this.setLayout(new BorderLayout());
//A l'Est
this.getContentPane().add(Bouton1, BorderLayout.EAST);
//A l'Ouest
this.getContentPane().add(Bouton2, BorderLayout.WEST);
//On rend la fenêtre visible
this.setVisible(true);
//On associe un écouteur au premier Bouton
Bouton1.addActionListener(new Action());
//On associe un écouteur au second bouton
Bouton2.addActionListener(new Action2());
}
public class Action implements ActionListener {
//On implémente l'interface ActionListener
////Méthode qui sera appelée lors d'un clic sur le bouton
public void actionPerformed (ActionEvent e){
JFrame frame2 = new JFrame("niveau 1");
frame2.setVisible(true);
frame2.setSize(412,430);
frame2.setLocationRelativeTo(null);
//On instancie notre ImageIcon
ImageIcon imagen = new ImageIcon(getClass().getResource("FullSizeRender.jpg"));
//On instancie notre JLabel dans lequel on instancie l'image que l'on veut faire apparaître en cliquant sur le bouton 1 et qui correspond à l'image
//du niveau 1.
JLabel label0 = new JLabel(imagen);
//On instancie notre JPanel
JPanel panel0 = new JPanel();
panel0.setBackground(Color.WHITE);
//On ajoute le label au panel
panel0.add(label0);
//On ajoute le panel au frame
frame2.add(panel0);
}
}
public class Action2 implements ActionListener {
public void actionPerformed (ActionEvent e){
//Ici j'ai créé une simple fenêtre temporaire en attendant que le niveau 2 soit terminé par mes camarades
JFrame frame3 = new JFrame("niveau 2");
frame3.setVisible(true);
frame3.setSize(530,430);
frame3.setLocationRelativeTo(null);
JLabel label1 = new JLabel("Voici le niveau 2!");
JPanel panel1 = new JPanel();
panel1.add(label1);
frame3.add(panel1);
}
}
} |
J’espère que j'ai été clair dans ma question...
Quelqu'un saurait-il m'indiquer comment faire ?
Merci d'avance pour votre aide.