repartition des 2 programmes

This commit is contained in:
Wilfried BRIGITTE 2024-04-26 16:26:26 +02:00
parent c9efc37ef3
commit 657eadee2a
7 changed files with 251 additions and 154 deletions

View File

@ -8,13 +8,13 @@ JVMFLAGS =
### REGLES ESSENTIELLES ### ### REGLES ESSENTIELLES ###
main.class : main.java menu.class main.class : mainProgramme2.java menuProgramme2.class
${JC} ${JCFLAGS} main.java ${JC} ${JCFLAGS} main.java
grille.class : grille.java resolveurGrille.class grille.class : grille.java resolveurGrille.class
${JC} ${JCFLAGS} grille.java ${JC} ${JCFLAGS} grille.java
menu.class : menu.java resolveurGrille.class grille.class menu.class : menuProgramme2.java resolveurGrille.class grille.class
${JC} ${JCFLAGS} menu.java ${JC} ${JCFLAGS} menu.java
resolveurGrille.class : resolveurGrille.java resolveurGrille.class : resolveurGrille.java
@ -22,13 +22,13 @@ resolveurGrille.class : resolveurGrille.java
### REGLES OPTIONNELLES ### ### REGLES OPTIONNELLES ###
run : main.class run : mainProgramme2.class
${JVM} ${JVMFLAGS} main ${JVM} ${JVMFLAGS} main
clean : clean :
-rm -f *.class -rm -f *.class
mrproper : clean main.class mrproper : clean mainProgramme2.class
### BUTS FACTICES ### ### BUTS FACTICES ###

View File

@ -69,13 +69,16 @@ public class grille extends JComponent{
} }
} }
} }
/*bouton(s) grille(s)*/
JPanel bouton_grille = new JPanel(); JPanel bouton_grille = new JPanel();
bouton_grille.setSize(900,200); bouton_grille.setSize(300,200);
bouton_grille.setLayout(new BorderLayout()); bouton_grille.setLayout(new BorderLayout());
JButton verifier = new JButton("verifier"); JButton verifier = new JButton("verifier");
bouton_grille.add(verifier); bouton_grille.add(verifier);
fenetre.add(bouton_grille,BorderLayout.SOUTH); fenetre.add(bouton_grille,BorderLayout.SOUTH);
fenetre.add(place_grille, BorderLayout.CENTER); fenetre.add(place_grille, BorderLayout.CENTER);
/*affichage fenetre*/ /*affichage fenetre*/
fenetre.setVisible(true); fenetre.setVisible(true);
@ -127,4 +130,8 @@ public class grille extends JComponent{
return null; return null;
} }
public static void ExporterGrille(int[][] grille){
}
} }

View File

@ -1,6 +0,0 @@
public class main {
public static void main(String[] args) {
menu.menuFenetre();
}
}

View File

@ -0,0 +1,6 @@
public class mainProgramme1 {
public static void main(String[] args) {
menuProgramme1.menuProgramme1();
}
}

View File

@ -0,0 +1,6 @@
public class mainProgramme2 {
public static void main(String[] args) {
menuProgramme2.menuProgramme2();
}
}

107
Sudoku/menuProgramme1.java Normal file
View File

@ -0,0 +1,107 @@
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class menuProgramme1 {
private static String cheminFichier = null;
public static void menuProgramme1() {
/*fenetre*/
JFrame fenetre = new JFrame();
fenetre.setSize(500, 200);
fenetre.setTitle("Sudoku Creator (By Wilfried BRIGITTE & Julian GALLEGO)");
fenetre.setResizable(false);
fenetre.setLocationRelativeTo(null);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout gestionnaire = new GridLayout(4,1);
fenetre.setLayout(gestionnaire);
/*composants G*/
JLabel titre = new JLabel("Sudoku Creator");
titre.setHorizontalAlignment(JLabel.CENTER);
titre.setFont(new Font("Arial", Font.PLAIN, 25));
fenetre.add(titre, BorderLayout.CENTER);
JPanel ligne3 = new JPanel();
JButton ouvrir = new JButton("Ouvrir");
JLabel nomFichier = new JLabel("Fichier ouvert : ");
ligne3.add(ouvrir);
ligne3.add(nomFichier);
fenetre.add(ligne3, BorderLayout.CENTER);
JPanel ligne4 = new JPanel();
JButton editerGrilleVierge = new JButton("Editer Grille Vierge");
JButton editerGrilleSelectionner = new JButton("Editer Grille Selectionner");
JButton quitter = new JButton("Quitter");
ligne4.add(editerGrilleVierge);
ligne4.add(editerGrilleSelectionner);
ligne4.add(quitter);
fenetre.add(ligne4, BorderLayout.CENTER);
JLabel InfoLogiciel = new JLabel(" Info : Tout est normal");
InfoLogiciel.setHorizontalAlignment(JLabel.LEFT);
InfoLogiciel.setFont(new Font("Arial", Font.PLAIN, 11));
fenetre.add(InfoLogiciel);
/*affichage*/
fenetre.setVisible(true);
/*evenements*/
ouvrir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
JFileChooser filechooser = new JFileChooser();
filechooser.setCurrentDirectory(new File("./grille"));
int result = filechooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File selectedFile = filechooser.getSelectedFile();
nomFichier.setText("Fichier ouvert : " + selectedFile.getName());
cheminFichier = selectedFile.getAbsolutePath();
InfoLogiciel.setText(" Info : Tout est normal");
InfoLogiciel.setForeground(Color.BLACK);
}
} catch (Exception ex) {
System.err.println("Erreur selection du fichier");
}
}
});
editerGrilleVierge.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e4){
int[][] grille_vide = null;
grille_vide = new int[9][9];
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 ; j++ ) {
grille_vide[i][j] = 0;
}
}
fenetre.dispose();
grille.AfficherGrille(grille_vide, true);
}
});
editerGrilleSelectionner.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e4){
if (cheminFichier == null){
InfoLogiciel.setText(" Info : Erreur : Veuillez selectionner un fichier .gri");
InfoLogiciel.setForeground(Color.RED);
}else{
fenetre.dispose();
grille.AfficherGrille(grille.ChargerGrille(cheminFichier), true);
}
}
});
quitter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e3) {
System.exit(0);
}
});
}
}

View File

@ -1,143 +1,120 @@
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.io.*; import java.io.*;
public class menu { public class menuProgramme2 {
private static String cheminFichier = null; private static String cheminFichier = null;
private static boolean ResolutionManuel = true; private static boolean ResolutionManuel = true;
public static void menuFenetre() { public static void menuProgramme2() {
/*fenetre*/ /*fenetre*/
JFrame fenetre = new JFrame(); JFrame fenetre = new JFrame();
fenetre.setSize(500, 250); fenetre.setSize(500, 250);
fenetre.setTitle("Sudoku Resolver (By Wilfried BRIGITTE & Julian GALLEGO)"); fenetre.setTitle("Sudoku Resolver (By Wilfried BRIGITTE & Julian GALLEGO)");
fenetre.setResizable(false); fenetre.setResizable(false);
fenetre.setLocationRelativeTo(null); fenetre.setLocationRelativeTo(null);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout gestionnaire = new GridLayout(5,1); GridLayout gestionnaire = new GridLayout(5,1);
fenetre.setLayout(gestionnaire); fenetre.setLayout(gestionnaire);
/*composants G*/ /*composants G*/
JLabel titre = new JLabel("Sudoku Resolver"); JLabel titre = new JLabel("Sudoku Resolver");
titre.setHorizontalAlignment(JLabel.CENTER); titre.setHorizontalAlignment(JLabel.CENTER);
titre.setFont(new Font("Arial", Font.PLAIN, 25)); titre.setFont(new Font("Arial", Font.PLAIN, 25));
fenetre.add(titre, BorderLayout.CENTER); fenetre.add(titre, BorderLayout.CENTER);
JPanel ligne2 = new JPanel(); JPanel ligne2 = new JPanel();
ButtonGroup groupModeResolution = new ButtonGroup(); ButtonGroup groupModeResolution = new ButtonGroup();
JRadioButton manuel = new JRadioButton("manuel"); JRadioButton manuel = new JRadioButton("manuel");
JRadioButton auto = new JRadioButton("auto"); JRadioButton auto = new JRadioButton("auto");
groupModeResolution.add(manuel); groupModeResolution.add(manuel);
groupModeResolution.add(auto); groupModeResolution.add(auto);
ligne2.add(manuel); ligne2.add(manuel);
ligne2.add(auto); ligne2.add(auto);
manuel.setSelected(true); manuel.setSelected(true);
fenetre.add(ligne2, BorderLayout.CENTER); fenetre.add(ligne2, BorderLayout.CENTER);
JPanel ligne3 = new JPanel(); JPanel ligne3 = new JPanel();
JButton ouvrir = new JButton("Ouvrir"); JButton ouvrir = new JButton("Ouvrir");
JLabel nomFichier = new JLabel("Fichier ouvert : "); JLabel nomFichier = new JLabel("Fichier ouvert : ");
ligne3.add(ouvrir); ligne3.add(ouvrir);
ligne3.add(nomFichier); ligne3.add(nomFichier);
fenetre.add(ligne3, BorderLayout.CENTER); fenetre.add(ligne3, BorderLayout.CENTER);
JPanel ligne4 = new JPanel(); JPanel ligne4 = new JPanel();
JButton editer = new JButton("Editer"); JButton lancer = new JButton("Lancer");
JButton lancer = new JButton("Lancer"); JButton quitter = new JButton("Quitter");
JButton quitter = new JButton("Quitter"); ligne4.add(lancer);
ligne4.add(editer); ligne4.add(quitter);
ligne4.add(lancer); fenetre.add(ligne4, BorderLayout.CENTER);
ligne4.add(quitter);
fenetre.add(ligne4, BorderLayout.CENTER); JLabel InfoLogiciel = new JLabel(" Info : Tout est normal");
InfoLogiciel.setHorizontalAlignment(JLabel.LEFT);
JLabel InfoLogiciel = new JLabel(" Info : Tout est normal"); InfoLogiciel.setFont(new Font("Arial", Font.PLAIN, 11));
InfoLogiciel.setHorizontalAlignment(JLabel.LEFT); fenetre.add(InfoLogiciel);
InfoLogiciel.setFont(new Font("Arial", Font.PLAIN, 11));
fenetre.add(InfoLogiciel); /*affichage*/
fenetre.setVisible(true);
/*affichage*/
fenetre.setVisible(true); /*evenements*/
ouvrir.addActionListener(new ActionListener() {
/*evenements*/ public void actionPerformed(ActionEvent e) {
ouvrir.addActionListener(new ActionListener() { try {
public void actionPerformed(ActionEvent e) { JFileChooser filechooser = new JFileChooser();
try { filechooser.setCurrentDirectory(new File("./grille"));
JFileChooser filechooser = new JFileChooser(); int result = filechooser.showOpenDialog(null);
filechooser.setCurrentDirectory(new File("./grille")); if (result == JFileChooser.APPROVE_OPTION) {
int result = filechooser.showOpenDialog(null); File selectedFile = filechooser.getSelectedFile();
if (result == JFileChooser.APPROVE_OPTION) { nomFichier.setText("Fichier ouvert : " + selectedFile.getName());
File selectedFile = filechooser.getSelectedFile(); cheminFichier = selectedFile.getAbsolutePath();
nomFichier.setText("Fichier ouvert : " + selectedFile.getName()); InfoLogiciel.setText(" Info : Tout est normal");
cheminFichier = selectedFile.getAbsolutePath(); InfoLogiciel.setForeground(Color.BLACK);
InfoLogiciel.setText(" Info : Tout est normal"); }
InfoLogiciel.setForeground(Color.BLACK); } catch (Exception ex) {
} System.err.println("Erreur selection du fichier");
} catch (Exception ex) { }
System.err.println("Erreur selection du fichier"); }
} });
}
}); lancer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e2) {
editer.addActionListener(new ActionListener(){ if(cheminFichier != null){
public void actionPerformed(ActionEvent e4){ if (ResolutionManuel == true) {
if (cheminFichier == null){ fenetre.dispose();
int[][] grille_vide = null; grille.AfficherGrille(grille.ChargerGrille(cheminFichier),false);
grille_vide = new int[9][9]; } else {
grille.AfficherGrille(resolveurGrille.resoudreGrille(grille.ChargerGrille(cheminFichier)),false);
for (int i = 0; i < 9; i++) { }
for (int j = 0; j < 9 ; j++ ) { } else {
grille_vide[i][j] = 0; InfoLogiciel.setText(" Info : Erreur : Veuillez selectionner un fichier .gri");
} InfoLogiciel.setForeground(Color.RED);
} }
}
fenetre.dispose(); });
grille.AfficherGrille(grille_vide, true);
}else{ quitter.addActionListener(new ActionListener() {
fenetre.dispose(); public void actionPerformed(ActionEvent e3) {
grille.AfficherGrille(grille.ChargerGrille(cheminFichier), true); System.exit(0);
} }
} });
});
manuel.addActionListener(new ActionListener() {
lancer.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e2) { public void actionPerformed(ActionEvent e1) {
if(cheminFichier != null){ ResolutionManuel = true;
if (ResolutionManuel == true) { }
fenetre.dispose(); });
grille.AfficherGrille(grille.ChargerGrille(cheminFichier),false);
} else { auto.addActionListener(new ActionListener() {
grille.AfficherGrille(resolveurGrille.resoudreGrille(grille.ChargerGrille(cheminFichier)),false); @Override
} public void actionPerformed(ActionEvent e) {
} else { ResolutionManuel = false;
InfoLogiciel.setText(" Info : Erreur : Veuillez selectionner un fichier .gri"); }
InfoLogiciel.setForeground(Color.RED); });
} }
} }
});
quitter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e3) {
System.exit(0);
}
});
manuel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e1) {
ResolutionManuel = true;
}
});
auto.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ResolutionManuel = false;
}
});
}
}