Bonjour a tous,
Je vous explique mon probleme, je récupere une image par webcam de chaque joueur qui vont jouer a mon jeu et ensuite je lance mon jeu mais mon jeu prends toujours l'image récuperer lors du précédent programme lancé alors que je voudrais que ce soit la photo du programme en cours :/
Je pense que cela vient du fait que j'appelle mon jeu dans mon actionPerfomed
Merci d'avance pour vos réponses
/**
* Created by Thomas on 11/05/2015.
*/
package interfaceGr;
import com.github.sarxos.webcam.Webcam;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class FenetreGr extends JFrame implements ActionListener {
public static BufferedImage resize(BufferedImage image, int width, int height) {
BufferedImage i = new BufferedImage(width, height, image.getType());
Graphics2D g = i.createGraphics();
g.drawImage(image, 0, 0, width, height, null);
g.dispose();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
return i;
}
JButton bouton,bouton2,bouton3;
public FenetreGr(){
super();
this.setSize(800, 500);
this.setTitle("Jeux d'echec : Menu principal");
JPanel panel_top = new JPanel(); // Création de 3 sous-panneaux pour l'organisation graphique de notre fenetre
JPanel panel_center = new JPanel();
JPanel panel_bottom = new JPanel();
JTextField jt = new JTextField("Veuillez prendre une photo de chaque joueur avant de commencer la partie.");
GridLayout gl = new GridLayout(1,0); //1 ligne et n colonnes
bouton = new JButton("Prendre une photo du joueur 1 ");
bouton2 = new JButton("Prendre une photo du joueur 2");
bouton3 = new JButton("Lancer le jeu");
panel_top.add(jt, BorderLayout.CENTER);
panel_center.add(bouton,BorderLayout.EAST);
panel_center.add(bouton2,BorderLayout.WEST);
panel_bottom.add(bouton3, BorderLayout.CENTER);
bouton.addActionListener(this);
bouton2.addActionListener(this);
bouton3.addActionListener(this);
getContentPane().add(panel_top, BorderLayout.NORTH); // on ajoute panel_top au nord de notre panneau principal
getContentPane().add(panel_center, BorderLayout.CENTER); // on ajoute panel_center au nord de notre panneau principal
getContentPane().add(panel_bottom, BorderLayout.SOUTH); // on ajoute panel_bottom au nord de notre panneau principal
this.pack();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == bouton) {
try {
Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("C:\\Users\\Thomas\\Desktop\\CamCapture\\src\\images\\j1.png"));
webcam.close();
BufferedImage i = resize(ImageIO.read(new File("C:\\Users\\Thomas\\Desktop\\CamCapture\\src\\images\\j1.png")), 64, 64);
ImageIO.write(i, "PNG", new File("C:\\Users\\Thomas\\Desktop\\CamCapture\\src\\images\\j1r.png"));
repaint();
} catch(IOException err) {
// Handle the error here
}
}else if (e.getSource() == bouton2) {
System.out.println("c’est le bouton 2");
try {
Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("C:\\Users\\Thomas\\Desktop\\CamCapture\\src\\images\\j2.png"));
webcam.close();
BufferedImage i = resize(ImageIO.read(new File("C:\\Users\\Thomas\\Desktop\\CamCapture\\src\\images\\j2.png")), 64, 64);
ImageIO.write(i, "PNG", new File("C:\\Users\\Thomas\\Desktop\\CamCapture\\src\\images\\j2r.png"));
System.out.println("Image ");
repaint();
} catch (IOException err) {
// Handle the error here
}
}else if (e.getSource() == bouton3) {
FenetrePr pr = new FenetrePr();
// Appeller le jeu
}
}
public static void main(String[] args) {
FenetreGr fenetre = new FenetreGr();
}
}